timm/efficientnet_b3.ra2_in1k
3012.7m
1---2tags:3- image-classification4- timm5- transformers6library_name: timm7license: apache-2.08datasets:9- imagenet-1k10---11# Model card for efficientnet_b3.ra2_in1k12 13A EfficientNet image classification model. Trained on ImageNet-1k in `timm` using recipe template described below.14 15Recipe details:16 * RandAugment `RA2` recipe. Inspired by and evolved from EfficientNet RandAugment recipes. Published as `B` recipe in [ResNet Strikes Back](https://arxiv.org/abs/2110.00476).17 * RMSProp (TF 1.0 behaviour) optimizer, EMA weight averaging18 * Step (exponential decay w/ staircase) LR schedule with warmup19 20 21## Model Details22- **Model Type:** Image classification / feature backbone23- **Model Stats:**24 - Params (M): 12.225 - GMACs: 1.626 - Activations (M): 21.527 - Image size: train = 288 x 288, test = 320 x 32028- **Papers:**29 - EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks: https://arxiv.org/abs/1905.1194630 - ResNet strikes back: An improved training procedure in timm: https://arxiv.org/abs/2110.0047631- **Dataset:** ImageNet-1k32- **Original:** https://github.com/huggingface/pytorch-image-models33 34## Model Usage35### Image Classification36```python37from urllib.request import urlopen38from PIL import Image39import timm40 41img = Image.open(urlopen(42 'https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/beignets-task-guide.png'43))44 45model = timm.create_model('efficientnet_b3.ra2_in1k', pretrained=True)46model = model.eval()47 48# get model specific transforms (normalization, resize)49data_config = timm.data.resolve_model_data_config(model)50transforms = timm.data.create_transform(**data_config, is_training=False)51 52output = model(transforms(img).unsqueeze(0)) # unsqueeze single image into batch of 153 54top5_probabilities, top5_class_indices = torch.topk(output.softmax(dim=1) * 100, k=5)55```56 57### Feature Map Extraction58```python59from urllib.request import urlopen60from PIL import Image61import timm62 63img = Image.open(urlopen(64 'https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/beignets-task-guide.png'65))66 67model = timm.create_model(68 'efficientnet_b3.ra2_in1k',69 pretrained=True,70 features_only=True,71)72model = model.eval()73 74# get model specific transforms (normalization, resize)75data_config = timm.data.resolve_model_data_config(model)76transforms = timm.data.create_transform(**data_config, is_training=False)77 78output = model(transforms(img).unsqueeze(0)) # unsqueeze single image into batch of 179 80for o in output:81 # print shape of each feature map in output82 # e.g.:83 # torch.Size([1, 24, 144, 144])84 # torch.Size([1, 32, 72, 72])85 # torch.Size([1, 48, 36, 36])86 # torch.Size([1, 136, 18, 18])87 # torch.Size([1, 384, 9, 9])88 89 print(o.shape)90```91 92### Image Embeddings93```python94from urllib.request import urlopen95from PIL import Image96import timm97 98img = Image.open(urlopen(99 'https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/beignets-task-guide.png'100))101 102model = timm.create_model(103 'efficientnet_b3.ra2_in1k',104 pretrained=True,105 num_classes=0, # remove classifier nn.Linear106)107model = model.eval()108 109# get model specific transforms (normalization, resize)110data_config = timm.data.resolve_model_data_config(model)111transforms = timm.data.create_transform(**data_config, is_training=False)112 113output = model(transforms(img).unsqueeze(0)) # output is (batch_size, num_features) shaped tensor114 115# or equivalently (without needing to set num_classes=0)116 117output = model.forward_features(transforms(img).unsqueeze(0))118# output is unpooled, a (1, 1536, 9, 9) shaped tensor119 120output = model.forward_head(output, pre_logits=True)121# output is a (1, num_features) shaped tensor122```123 124## Model Comparison125Explore the dataset and runtime metrics of this model in timm [model results](https://github.com/huggingface/pytorch-image-models/tree/main/results).126 127## Citation128```bibtex129@inproceedings{tan2019efficientnet,130 title={Efficientnet: Rethinking model scaling for convolutional neural networks},131 author={Tan, Mingxing and Le, Quoc},132 booktitle={International conference on machine learning},133 pages={6105--6114},134 year={2019},135 organization={PMLR}136}137```138```bibtex139@misc{rw2019timm,140 author = {Ross Wightman},141 title = {PyTorch Image Models},142 year = {2019},143 publisher = {GitHub},144 journal = {GitHub repository},145 doi = {10.5281/zenodo.4414861},146 howpublished = {\url{https://github.com/huggingface/pytorch-image-models}}147}148```149```bibtex150@inproceedings{wightman2021resnet,151 title={ResNet strikes back: An improved training procedure in timm},152 author={Wightman, Ross and Touvron, Hugo and Jegou, Herve},153 booktitle={NeurIPS 2021 Workshop on ImageNet: Past, Present, and Future}154}155```156 