timm documentation
LeViT
LeViT
Category: Hybrid · Code: timm/models/levit.py · Architectures: 20 · Pretrained weights: 10 (10 with ImageNet-1k results)
LeViT is a hybrid network for fast inference, a convolutional stem followed by attention stages that shrink the resolution with attention based downsampling and use attention biases for position.
Papers
Usage
See the Quickstart for loading pretrained weights, image preprocessing and fine-tuning, and Feature Extraction for using the models as backbones.
>>> import timm
>>> model = timm.create_model('levit_256.fb_dist_in1k', pretrained=True)
>>> data_config = timm.data.resolve_model_data_config(model)Model API support
| Feature | Levit | LevitDistilled |
|---|---|---|
features_only=True feature maps | ✓ (strides 16, 32, 64) | ✓ (strides 16, 32, 64) |
forward_intermediates() | ✓ | ✓ |
prune_intermediate_layers() | ✓ | ✓ |
| Any input size, no changes needed | ✗ | ✗ |
set_input_size() | ✗ | ✗ |
dynamic_img_size=True | ✗ | ✗ |
set_grad_checkpointing() | ✓ | ✓ |
Layer-wise LR decay (group_matcher()) | ✓ | ✓ |
reset_classifier() | ✓ | ✓ |
✓ supported, ✓ (square) works for square sizes only, ✗ not supported, – not needed (the model already accepts any input
size). Checked by running each feature on a randomly initialized model (Levit with levit_256d at 224, LevitDistilled with levit_128s at 224), other architectures of the same class are expected to behave the same. See
the Model API page for details.
Architectures
| Architecture | Class | Params (M) | GMACs | Input size | Pretrained weights |
|---|---|---|---|---|---|
levit_128 | LevitDistilled | 9.19 | 0.41 | 224 | 1 |
levit_128s | LevitDistilled | 7.76 | 0.30 | 224 | 1 |
levit_192 | LevitDistilled | 10.92 | 0.66 | 224 | 1 |
levit_256 | LevitDistilled | 18.86 | 1.13 | 224 | 1 |
levit_256d | Levit | 26.16 | 1.39 | 224 | 0 |
levit_384 | LevitDistilled | 39.07 | 2.35 | 224 | 1 |
levit_384_s8 | LevitDistilled | 39.06 | 9.95 | 224 | 0 |
levit_512 | Levit | 95.08 | 5.62 | 224 | 0 |
levit_512_s8 | Levit | 73.97 | 21.77 | 224 | 0 |
levit_512d | Levit | 92.39 | 5.84 | 224 | 0 |
levit_conv_128 | LevitDistilled | 9.19 | 0.41 | 224 | 1 |
levit_conv_128s | LevitDistilled | 7.76 | 0.30 | 224 | 1 |
levit_conv_192 | LevitDistilled | 10.92 | 0.66 | 224 | 1 |
levit_conv_256 | LevitDistilled | 18.86 | 1.13 | 224 | 1 |
levit_conv_256d | Levit | 26.16 | 1.39 | 224 | 0 |
levit_conv_384 | LevitDistilled | 39.07 | 2.35 | 224 | 1 |
levit_conv_384_s8 | LevitDistilled | 39.06 | 9.95 | 224 | 0 |
levit_conv_512 | Levit | 95.08 | 5.62 | 224 | 0 |
levit_conv_512_s8 | Levit | 73.97 | 21.77 | 224 | 0 |
levit_conv_512d | Levit | 92.39 | 5.84 | 224 | 0 |
GMACs and parameter counts are for the default input size and classifier of each architecture, from the benchmark results.
Pretrained weights
Top-1 is ImageNet-1k validation accuracy from results-imagenet.csv at
the listed eval size, - if the weight has no ImageNet-1k result (e.g. pretraining or image-text weights). Classes is the
size of the pretrained classifier, none for weights without one.
| Weight | Input size | Top-1 (%) | Eval size | Classes | License | Hub |
|---|---|---|---|---|---|---|
levit_128.fb_dist_in1k | 224 | 78.486 | 224 | 1000 | apache-2.0 | timm |
levit_128s.fb_dist_in1k | 224 | 76.520 | 224 | 1000 | apache-2.0 | timm |
levit_192.fb_dist_in1k | 224 | 79.858 | 224 | 1000 | apache-2.0 | timm |
levit_256.fb_dist_in1k | 224 | 81.506 | 224 | 1000 | apache-2.0 | timm |
levit_384.fb_dist_in1k | 224 | 82.600 | 224 | 1000 | apache-2.0 | timm |
levit_conv_128.fb_dist_in1k | 224 | 78.488 | 224 | 1000 | apache-2.0 | timm |
levit_conv_128s.fb_dist_in1k | 224 | 76.534 | 224 | 1000 | apache-2.0 | timm |
levit_conv_192.fb_dist_in1k | 224 | 79.860 | 224 | 1000 | apache-2.0 | timm |
levit_conv_256.fb_dist_in1k | 224 | 81.506 | 224 | 1000 | apache-2.0 | timm |
levit_conv_384.fb_dist_in1k | 224 | 82.600 | 224 | 1000 | apache-2.0 | timm |
Citation
@article{graham2021levit,
title={LeViT: a Vision Transformer in ConvNet's Clothing for Faster Inference},
author={Benjamin Graham and Alaaeldin El-Nouby and Hugo Touvron and Pierre Stock and Armand Joulin and Herv'e J'egou and Matthijs Douze},
journal={arXiv preprint arXiv:2104.01136},
year={2021}
}