Which Pytorch Backbone to Use for Low Data Fine-tuning?
Resource-efficient Image Classification
Criteria for choosing backbones for our experiments?
ImageNet-1k pre-trained weights available in torchvision or github (WaveMix)
Number of parameters less than 30 M
Only model with highest ImageNet performance from one architecture family
Architecture
# Params (M)
ImageNet-1k Top-1 Accuracy (%)
ResNet-50
25.6
76.13
WaveMix
27.9
75.32
ConvNeXt-Tiny
28.6
82.52
Swin-Tiny
28.3
81.47
SwinV2-Tiny
28.4
82.07
EfficientNetV2-S
21.5
84.23
DenseNet-161
28.7
77.14
MobileNetV3-Large
5.5
75.27
RegNetY-3.2GF
19.4
81.98
ResNeXt-50 32×4d
25.0
81.20
ShuffleNetV2 2.0×
7.4
76.23
Datasets used for benchmarking
Dataset
Domain
# Training Images
# Testing Images
# Classes
CIFAR-10
🖼️ Natural Images
50,000
10,000
10
CIFAR-100
🖼️ Natural Images
50,000
10,000
100
TinyImageNet
🖼️ Natural Images (ImageNet subset)
100,000
10,000
200
Stanford Dogs
🖼️ Natural Images (Dog breeds)
12,000
8,580
120
Flowers-102
🖼️ Natural Images (Flower species)
2,040
6,149
102
CUB-200-2011
🖼️ Natural Images (Bird species)
5,994
5,794
200
Stanford Cars
🖼️ Natural Images (Car models)
8,144
8,041
196
Food-101
🖼️ Natural Images (Food categories)
75,750
25,250
101
DTD
🎨 Texture Images
1,880
1,880
47
UCMerced Land Use
🛰️ Remote Sensing Images
1,680
420
21
EuroSAT
🛰️ Remote Sensing Images
18,900
8,100
10
PlantVillage
🌿 Plant Images
44,343
11,105
39
PlantCLEF
🌿 Plant Images
10,455
1,135
20
Galaxy10 DECals
🌌 Astronomy Images (Galaxy Morphology)
15,962
1,774
10
BreakHis 40×
🏥 Medical Images (Histopathology)
1,398
606
2
BreakHis 100×
🏥 Medical Images (Histopathology)
1,458
632
2
BreakHis 200×
🏥 Medical Images (Histopathology)
1,411
611
2
BreakHis 400×
🏥 Medical Images (Histopathology)
1,276
553
2
RSNA Pneumonia Detection
🏥 Medical Images (Radiology)
24,181
6046
2
Code to run benchmarking for each dataset
python < dataset.py> -model < backbone> -bs < batch-size>
If you want to create a train test split
python split.py --input_dir < input folder path> --output_dir < output folder path> --test_size < fraction to be split>
@misc{jeevan2024backbone,
title={Which Backbone to Use: A Resource-efficient Domain Specific Comparison for Computer Vision},
author={Pranav Jeevan and Amit Sethi},
year={2024},
eprint={2406.05612},
archivePrefix={arXiv},
primaryClass={cs.CV}
}