← Open Source
kentaroy47

vision-transformers-cifar10

Let's train vision transformers (ViT) for cifar10/cifar100/Imagenet.

Model DevelopmentArchitectureDomain-specific trainingPython
Open on GitHub
Momentum
+0stars in 24 hours0.0%
722
Stars
136
Forks
+0
This week
1
Contributors
Created 2020-10-27 · Updated 2026-10-04 · #14543 today
Top developers
README

vision-transformers-cifar10

This is your go-to playground for training Vision Transformers (ViT) and its related models on CIFAR-10/CIFAR-100, a common benchmark dataset in computer vision.

The whole codebase is implemented in Pytorch, which makes it easier for you to tweak and experiment. Over the months, we've made several notable updates including adding different models like ConvMixer, CaiT, ViT-small, SwinTransformers, and MLP mixer. We've also adapted the default training settings for ViT to fit better with the CIFAR-10/CIFAR-100 dataset.

Using the repository is straightforward - all you need to do is run the train_cifar10.py script with different arguments, depending on the model and training parameters you'd like to use.

Thanks, the repo has been used in 40+ papers including CVPR, ICLR, Neurips, ICML!

Please use this citation format if you use this in your research.

@misc{yoshioka2024visiontransformers,
  author       = {Kentaro Yoshioka},
  title        = {vision-transformers-cifar10: Training Vision Transformers (ViT) and related models on CIFAR-10},
  year         = {2024},
  publisher    = {GitHub},
  howpublished = {\url{https://github.com/kentaroy47/vision-transformers-cifar10}}
}

Updates

  • Added ConvMixer implementation. Really simple! (2021/10)

  • Added wandb train log to reproduce results. (2022/3)

  • Added CaiT and ViT-small. (2022/3)

  • Added SwinTransformers. (2022/3)

  • Added MLP mixer. (2022/6)

  • Changed default training settings for ViT.

  • Fixed some bugs and training settings (2024/2)

  • Added onnx and torchscript model exports. (2024/12)

  • Added mobilevit. (2025/1)

  • Add CIFAR-100 support (2025/4)

  • Add Dynamic Tanh ViT (2025/6)

Usage example

pip install -r requirements.txt # install dependencies

python train_cifar10.py # vit-patchsize-4

python train_cifar10.py --dataset cifar100 # cifar-100

python train_cifar10.py --size 48 # vit-patchsize-4-imsize-48

python train_cifar10.py --patch 2 # vit-patchsize-2

python train_cifar10.py --net vit_small --n_epochs 400 # vit-small

python train_cifar10.py --net vit_timm # train with pretrained vit

python train_cifar10.py --net dyt # train with Layernorm-less ViT (DyT)

python train_cifar10.py --net convmixer --n_epochs 400 # train with convmixer

python train_cifar10.py --net mlpmixer --n_epochs 500 --lr 1e-3

python train_cifar10.py --net cait --n_epochs 200 # train with cait

python train_cifar10.py --net swin --n_epochs 400 # train with SwinTransformers

python train_cifar10.py --net res18 # resnet18+randaug

Results..

CIFAR10 Accuracy Train Log
ViT patch=2 80%
ViT patch=4 Epoch@200 80% Log
ViT patch=4 Epoch@500 85% Log
ViT patch=4 Epoch@1000 89% Log
ViT patch=8 30%
ViT small 80%
DyT 74% Log
MLP mixer 88%
CaiT 80%
Swin-t 90%
ViT small (timm transfer) 97.5%
ViT base (timm transfer) 98.5%
ConvMixerTiny(no pretrain) 96.3% Log
resnet18 93%
resnet18+randaug 95% Log
CIFAR100 Accuracy Train Log
ViT patch=4 Epoch@200 52% Log
resnet18+randaug 71% Log

Used in..

Model Export

This repository supports exporting trained models to ONNX and TorchScript formats for deployment purposes. You can export your trained models using the export_models.py script.

Basic Usage

python export_models.py --checkpoint path/to/checkpoint --model_type vit --output_dir exported_models
Nearby in the ranking
Similar items