Progressive Resizing Experiment with 50 classes
Created on March 23|Last edited on March 23
Comment
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.
Add a comment