Paper · 2026-05-12 · cs.CV, cs.AI
A Transfer Learning Evaluation of Deep Neural Networks for Image Classification
Fine-tunes eleven ImageNet-pretrained CNNs on five image datasets, training either only the classifier or all layers, for one or ten episodes. Scores are accuracy, accuracy density (accuracy / #parameters), training time and model size. Author-reported: SqueezeNet has the highest density under full tuning, ResNet-18 under classifier-only tuning. No numeric results table.
Transfer learningConvolutional neural networkData augmentationtransfer-learningimage-classificationmodel-selectionbenchmark
AI-compiled by claude-haiku-5-5 on 2026-10-18, not yet reviewed by a human. Every claim cites its source; check it when a detail matters.
In plain words
Many image classifiers start from a model that was already trained on a large public image collection, and then get adapted to a new task. This paper asks which of eleven such pre-trained models is the best starting point. The authors adapt each one to five small image sets, such as photos of ants and bees, of handwritten digits, and of smartphone backs.
They try two ways of adapting. In one, only the final classification layer is retrained and everything else stays frozen. In the other, every layer is retrained. They also compare a short training run, where each image is seen once, with a longer one, where each image is seen ten times. For each model they record accuracy, training time and model size, and they combine accuracy with model size into a single "accuracy density" score.
The paper's answer is a set of rankings rather than one winner. Under full retraining, SqueezeNet scores best on accuracy density. When only the classifier is retrained, ResNet-18 scores best on that density. The authors add that the best choice depends on the constraints of the project, such as accuracy, training time or memory.
TL;DR
- Eleven ImageNet-pretrained PyTorch CNNs are adapted to five image datasets, in two tuning modes and two episode settings §1 §4 §5.
- The headline score is accuracy divided by parameter count eq. 1 §4.1.
- Author-reported: SqueezeNet has the highest average accuracy density under full tuning, and ResNet-18 the highest under classifier-only tuning §5.1.1 §5.1.2 fig. 3.
- The text gives no numeric accuracy, density or time table. All values appear only in plotted figures, several without value labels fig. 3 fig. 4 fig. 5 fig. 6.
- No official code was found. Several setup details (epochs, splits, schedule) are not stated, so exact reproduction is not possible from the paper alone §4.
Problem
Choosing a pre-trained model for transfer learning is hard, because the usual comparisons rank models on ImageNet accuracy alone. The authors argue that target-task accuracy, training time, memory and model size also matter, and that earlier benchmarks either used reported literature values or ImageNet only §1. The paper asks which pre-trained model fits a target task, under two adaptation strategies and two training-length settings §1 §4 §5.
Method
Models. The study uses eleven PyTorch vision models, from AlexNet (2012) to MnasNet (2019). GoogLeNet is called Inception-V1 in the implementation section §4 tab. 1. The weights are the ImageNet-pretrained ones shipped with the PyTorch vision models §4. The paper gives depth and the main design idea of each model in a table; the MnasNet depth entry says it has no linear sequence tab. 1.
Datasets. Five datasets are used §3.3.
- CIFAR-10, described as 60K images §3.3.
- MNIST, described as 70K images §3.3.
- Hymenoptera (ants and bees): 245 training and 153 test images §3.3.1.
- Smartphones: 654 RGB images in twelve classes, from six brands, collected from search engines with a focus on the back of the phone §3.3.2 fig. 2.
- Augmented smartphones: each original image is rotated by 45, 135, 225 or 315 degrees, and noise is added at 10%, 25% or 50%; the augmented set has 8,502 images, including the 654 originals §3.3.3.
Tuning modes. Both modes start from the same ImageNet weights §4.
- Classifier-only: the feature-extraction layers are frozen, and the task-specific classifier is re-initialised with random values. For models without an explicit classifier part (the paper names ResNet-18), only the last fully connected layer is trained §4.
- Full: every parameter is trained §4.
Training. Each model is trained on each dataset with Adam, a batch size of 10, and a grid over learning rates {1e-2, 1e-3, 1e-4} §4. Early stopping keeps the weights from the epoch with the best validation accuracy, and a later epoch with lower validation accuracy does not replace them §4. The plots show only the top-scoring learning rate for each model §4.
Episodes. In the one-episode setting each sample is presented once. In the ten-episode setting each sample is presented ten times §5. Section 5.2 also says that ten independent trials were run and averaged §5.2. See Pitfalls.
Scores.
- Accuracy density is accuracy divided by the number of parameters eq. 1 §4.1. A higher value means more accuracy per parameter §4.1.
- Training time is measured in seconds on one GPU, and model size as the number of learning parameters in MB §4.2.
# Fine-tune one model in one tuning mode [§4]
# Input: pretrained (ImageNet weights); mode; learning_rate; train, val sets
# Output: best model by validation accuracy
def finetune(pretrained, mode, learning_rate, train, val):
model = copy(pretrained)
# Classifier-only: freeze all weights, then re-initialise the classifier
# with random values; the initialisation scheme is not stated [§4]
if mode == "classifier_only":
freeze_all_parameters(model)
reinitialise_random(classifier_part(model))
# Full tuning keeps the ImageNet weights and trains every layer [§4]
optimizer = Adam(trainable_parameters(model), learning_rate)
best_model = None
best_val_accuracy = minus_infinity
# Epoch count, patience and the LR schedule are not stated [§4]
for each epoch:
train_one_epoch(model, train, optimizer, batch_size=10)
val_accuracy = evaluate(model, val)
# Keep weights only when validation accuracy rises [§4]
if val_accuracy > best_val_accuracy:
best_val_accuracy = val_accuracy
best_model = copy(model)
return best_model# Accuracy density [eq. 1] [§4.1]
# Input: accuracy in percent [fig. 3]; num_params (count, see Pitfalls)
# Output: accuracy per parameter
def accuracy_density(accuracy, num_params):
# Higher means more accuracy per parameter [§4.1]
return accuracy / num_params# Smartphone augmentation: 4 rotations x 3 noise levels [§3.3.3]
# Input: image (H, W, 3)
# Output: 12 augmented images
def augment_smartphone(image):
# Rotations of 45, 135, 225 and 315 degrees [§3.3.3]
for angle in [45, 135, 225, 315]:
rotated = rotate(image, angle)
for percent in [0.10, 0.25, 0.50]:
# Noise values drawn from a discrete uniform on {0, ..., 255 * p}
# Whether they are added to or replace pixels is not stated
# [§3.3.3]
noise = uniform_int(0, 255 * percent, shape=image.shape)
yield add_noise(rotated, noise)The paper has one numbered equation (density) eq. 1. It has one numbered table, which describes the models and not the results tab. 1. Its algorithms are given in prose only; no algorithm box is present.
Hyperparameters
| Name | Value | Where | Notes |
|---|---|---|---|
| Optimiser | Adam | §4 | other Adam settings not stated |
| Learning rate | grid {1e-2, 1e-3, 1e-4} | §4 | schedule not stated; the one-episode and ten-episode runs share the grid §4 |
| Batch size | 10 | §4 | |
| Early stopping | keep weights with best validation accuracy | §4 | patience and maximum epochs not stated |
| Epochs, one-episode | each sample seen once | §5 | number of optimiser steps per epoch not stated |
| Epochs, ten-episode | each sample seen ten times | §5 | "episode" is defined only as this exposure count |
| Trials, ten-episode | 10 independent trials, averaged | §5.2 | trial seeds not stated |
| Trials, one-episode | not stated | §5.1 | |
| Tuning modes | classifier-only; full | §4 | |
| Classifier re-init | random values | §4 | scheme not stated |
| Frozen layers, classifier-only | all except classifier | §4 | which layers form the classifier is stated only for ResNet-18 (last FC layer) §4 |
| Input resolution | not stated | ||
| Input normalisation | not stated | ||
| Loss function | not stated | ||
| Data split (train/val/test) | not stated for CIFAR-10, MNIST, smartphones | §3.3 | Hymenoptera gives 245 train and 153 test §3.3.1; no validation count |
| Rotation angles (smartphone augmentation) | 45, 135, 225, 315 degrees | §3.3.3 | fill for empty corners not stated |
| Noise levels (smartphone augmentation) | 10%, 25%, 50% | §3.3.3 | |
| Augmentation applied before or after split | not stated | §3.3.3 | |
| Hardware | one Nvidia GTX 1080 Ti | §4 |
Results
Author-reported. Setup: eleven pre-trained PyTorch models, five datasets, two tuning modes, two episode settings, one GPU §4 §5. The paper reports averages over datasets and, for ten episodes, over ten trials §5.1 §5.2. No error bars or ranges are shown in the plotted averages fig. 3.
The text gives qualitative rankings only. Absolute accuracies, densities and training times are not in the text.
| Setting | Reported finding | Source |
|---|---|---|
| One episode, full tuning | SqueezeNet has the highest average accuracy density; AlexNet is tenth | §5.1.1 fig. 3 |
| One episode, classifier-only | ResNet-18 is "the most suitable candidate" by accuracy density | §5.1.2 fig. 3 |
| Ten episodes, full tuning | The model order is the same as in one episode; values are "higher to a small degree" | §5.2.1 fig. 4 |
| Ten episodes, classifier-only | ResNet-18 is the most efficient model by accuracy density; MnasNet has the poorest performance; VGG-16 is the most complex | §5.2.2 fig. 4 |
| Model size | "all models had small model sizes except AlexNet and VGG-16" (classifier-only) | §6 |
| Recommendation for high accuracy | GoogLeNet, DenseNet, ShuffleNet-V2, ResNet-18, ResNeXt | §6 |
| Recommendation for shortest training time | AlexNet (context in the conclusions is not clear about the mode) | §6 |
| Classifier-only accuracy | DenseNet has the highest accuracy | §6 |
Figure reading, not numeric values. In fig. 3, the full-tuning panel lists VGG-16 with the lowest density and SqueezeNet with the highest, and the classifier-only panel shows ResNet-18 highest. In the classifier-only panel, no bars are drawn for AlexNet or VGG-16; the text does not explain this fig. 3. The two panels use different axis scales fig. 3. The per-task scatter plots of accuracy against training time and model size are in fig. 5, fig. 6 and app. C and app. D. This card does not read values from them.
Paper vs code
No official code.
The paper has no code or data link. Its data availability statement says no new data were created §6. The search covered:
- the paper text and the arXiv abstract page, which lists no code or project page for this work;
- GitHub repository search for
Zengeler,transfer learning smartphone recycling,Abou Baker transferandHandmann transfer learning, all of which returned no results.
Pitfalls
- No numeric results in the text. All accuracy, density and time values appear only in plotted figures, and the bars in fig. 3 carry no value labels. Implementers cannot compare their numbers with exact values from the paper. The card has not read values from the plots.
- "Ten episodes" is defined two ways. Section 5 says each sample is shown ten times §5. Section 5.2 says ten independent trials were run and averaged §5.2. The paper does not say whether both hold at once.
- Epoch count, patience and schedule are not stated. Early stopping is described but its patience and the number of epochs are not §4. The one-episode setting shows each sample once §5, so early stopping on a single pass is unclear.
- Validation and test sets are not defined for CIFAR-10, MNIST and the smartphone sets §3.3. The paper does not say whether the reported accuracy is on the validation or the test split. Early stopping uses validation accuracy §4.
- Learning-rate selection. The plots show only the top learning rate per model §4. The text does not say whether that rate was chosen per dataset, per model, or on validation or test data.
- Parameter count in accuracy density. Eq. 1 uses "#parameters" eq. 1. The paper does not say whether this counts all parameters or only the trainable ones. In classifier-only mode these differ, and the panels of fig. 3 are on different scales.
- Units. The paper's section on model size says "number of learning parameters in MB" §4.2. It does not say whether MB means a parameter count or bytes, or at what precision.
- Which layer is the classifier. Only ResNet-18's last fully connected layer is named §4. For the other models the paper refers to "the PyTorch vision model implementations" §4. Models such as SqueezeNet are not described here.
- Augmentation details. The noise sentence says pixels are added "from a discrete uniform distribution {0 … 255·p}" §3.3.3. It does not say whether this is added to or replaces each pixel. The augmented count is 8,502 images, which equals 654 originals plus 12 augmentations of each (7,848), so the total is 13 times the original set. The text says the count is "multiplied by 12" §3.3.3. It also does not say whether augmentation happens before or after the train/validation split. If before, copies of the same photo can land in both.
- Ambiguous wording of the classifier-only mode. The related-work section says classifier-only fine-tuning "keeps the entire model's weight constant, excluding the last layer" §2.4. The implementation section is the operative definition §4.
- Small test sets. Hymenoptera has 153 test images §3.3.1. The paper reports no variance, and the ten-trial average is the only repetition §5.2. Differences between models of a few points may be within noise.
- Hardware-bound timings. Training times come from one GTX 1080 Ti with a batch size of 10 §4. Ranking by time on other hardware may differ.
- Conclusion and results wording. Several conclusions name a model for a claim that the text does not tie to a figure, such as AlexNet for "the shortest training time" §6. Check the scatter figures before relying on them.
- Missing AlexNet and VGG-16 bars. The classifier-only panel in fig. 3 has no bars for these two models, and the text does not explain why fig. 3.
- Model naming. The implementation section uses "Inception-V1 (GoogLeNet)" §4, and the tables use "GoogLeNet" tab. 1. These are the same model in the text.
Lineage
- Builds on: ImageNet-pretrained PyTorch vision models §4; the transfer learning by fine-tuning and the classifier-only split as described in §2.4 and §4.
- Compared against: the model benchmarks of Canziani et al. (2016) and Bianco et al. (2018), which the paper says covered ImageNet only §1.
- Uses an earlier dataset: the smartphone set comes from the authors' earlier e-waste recycling work §3.3.2.
- Future work: more evaluation metrics and the use of metadata to estimate transfer-learning hyperparameters §6.
- Superseded: not stated.
Source and license
Adapted from “A Transfer Learning Evaluation of Deep Neural Networks for Image Classification” by Nermeen Abou Baker, Nico Zengeler, Uwe Handmann (arXiv:2605.11989), used under CC BY 4.0. Changes: condensed and restructured for implementation, with tables, equations and algorithms taken from the paper and its code, each cited to its source. Not affiliated with or endorsed by the authors.