Skip to main content

Progressive Resizing Experiment with 50 classes

Created on March 23|Last edited on March 23

Introduction

This report covers experimentation of how effective progressive resizing can be.
I used the following setup:
  • Each training cycle was trained for 11 epochs. One with the head frozen then 10 more when everything is unfrozen.
  • The cycles go as follows: 128px -> 224px -> 384px -> 480px -> 800px.
  • Adam optimizer, CrossEntropyLoss, No MixUp, simple augmentations (rotations and flips), no Label Smoothing.
  • Trained on the 50 most common classes, predicting the binomial (genus+species)

The baseline I was trying to beat was called binomial50, with a final accuracy of 69.57%.

Prediction Samples

Here you can see the various predictions. I noticed most of the ones the models are getting wrong already belong to the same genus (the first part of the name), just a different species.
Here I have filtered for the final model (progresize-800-50cls) that got the best results.

Run set
6


Losses

Here we can see how the losses were reduced for the different training cycles. The progressive-800-50cls run was the longest because I used a batch-size of 8 instead of 32 so that it could fit in my VRAM.

Run set
6


Metrics

Here we can see the metrics report. The following metrics are used:
  • top-k-accuracy where k=3
  • F1 score (macro)
  • Error rate
  • Accuracy

Run set
6


Conclusion

In the end, we can see that with progressive resizing, we were able to get up to 80.5% f1 score, which is the best so far, and able to reduce the training time as well since we only trained for 11 epochs on the biggest size images (800px) which was taking around 10 minutes per epoch.