Models · Classification

Vision Transformer

Vision Transformer (Dosovitskiy et al. 2020): a transformer classifier on 16x16 image patches.

Commercial use: yes.

variantinputbackendtime (ms)peak memory (MiB, allocated / reserved)
vit_base_patch16_224.augreg2_in21k_ft_in1ksynthetic (224x224)original (fp32)
original
portable
kernels
portable + torch.compile
TensorRT fp16
6.33
5.48
3.02
1.65
2.10
1.14
371 / 386
531 / 548
205 / 390
300 / 370
238 / 266
196 (engine)
Details
  • Original code: https://github.com/huggingface/pytorch-image-models at 0df212b369a5
  • Code licence: Apache-2.0 (permissive); files:
  • Weights licence: Apache-2.0
  • Licence evidence: https://huggingface.co/timm/vit_base_patch16_224.augreg2_in21k_ft_in1k/blob/063c6c38a5d8510b2e57df480445e94b231dad2c/README.md
  • Training data: ImageNet-21k / ImageNet-22k (full ImageNet, fall 2011 release), ImageNet-1k (ILSVRC 2012 classification)
  • Kernel libraries: cudnn_hacc, fvm_conv, fvm_extra, fvm_mb, fvm_r3
  • Variants: vit_base_patch16_224.augreg2_in21k_ft_in1k (default of vit_base_patch16_224)
  • Outputs: logits; label_set: imagenet-1k
  • Input size: fixed 224x224: the input is resized (short side 248) and centre-cropped to it
  • Tested up to (portable, fp16, RTX 5060 Ti 16 GB): vit_base_patch16_224.augreg2_in21k_ft_in1k 224x224 (0.2 GiB peak allocated, 0.3 reserved)
  • vit_base_patch16_224.augreg2_in21k_ft_in1k 224x224, first call: portable + torch.compile 7 s (cold Inductor cache), TensorRT fp16 29 s (ONNX + engine).
  • vit_base_patch16_224.augreg2_in21k_ft_in1k original 224x224: torch.autocast(fp16) around the forward
  • vit_base_patch16_224.augreg2_in21k_ft_in1k load / first call: original 2.49 s / 0.283 s, portable 0.73 s / 0.004 s, kernels 2.05 s / 0.069 s
  • Protocol, median of 5 after 3 warm-up, uint8 CUDA input (synthetic for bench_inputs sizes), card defaults; gc before each load; peak = max over the first call and the timed calls

Measured

fastforks: the model's own resize / crop on the GPU; original: the library's pretrained loader and its PIL eval transform. Original = the original code named under Details, same checkpoint and protocol.

variantdatasetoriginal fp32original fp16portablekernelsnote
vit_base_patch16_224.augreg2_in21k_ft_in1kImageNet-1k val, 5000 random images, top-1 / top-5 %85.88 / 97.7085.90 / 97.7085.84 / 97.7085.88 / 97.68

Measured on NVIDIA GeForce RTX 5060 Ti, torch 2.14.1+cu130, fastforks 939adfe8, 2026-11-06.

Parity

CPU, float32: max |diff| <= 0.002 vs the original. GPU, float16 (the default), portable and kernels: mean |diff| <= 0.02 and p99 <= 0.08 (absolute error of the output logits).

variantkernels error vs original, mean / p99GPU, torchkernels used
vit_base_patch16_224.augreg2_in21k_ft_in1k0.00273 / 0.01018RTX 5060 Ti, torch 2.14.1+cu130cudnn_hacc@cudnn92400, fvm_conv@f1d064e539e1:sm_120, fvm_extra@3208ce525a91:sm_120, fvm_mb@720dd3f29bf7:sm_120, fvm_r3@f54eb890e23c:sm_120