Baseline: 10 Classes
This report describes experiments run on the 10 most common classes. 13th Jan 23
Created on January 13|Last edited on January 13
Comment
Introduction
I filtered the dataset to include only the 10 most common genus classes for this set of experiments. This is because it would have taken a lot of time to experiment on the whole dataset and I wouldn't have tried out a lot of ideas.
I first started training a small resnet18 on images of size 128x128 pixels with no augmentations and fancy tricks like learning rate decaying or weight decay and built from there, adding bit by bit in each experiment run.
The findings reported in this report are as follows (all were run for 10 epochs):
- arch: resnet18, no LR param scheduling, 128px, no augmentations. final acc - 52.8%.
- arch: resnet18, one-cycle LRscheduling, 128px, augmentations. final acc - 53.6%
- arch: resnet18, one-cycle LRscheduling, 224px, augmentations. final acc - 63.8%
- arch: resnet34, one-cycle LRscheduling, 224px, augmentations. final acc - 68.6%
- arch: convnext_tiny, one-cycle LRscheduling, 224px, augmentations. final acc - 77.9%
- arch: convnext_small, one-cycle LRscheduling, 224px, augmentations. final acc - 79.1%
- arch: convnext_base, one-cycle LRscheduling, 224px, augmentations. final acc - 81.4%
Sample Predictions
Here are some sample predictions:
Run set
65
Losses
The convnext models performed the best. The convnext_base edged out convnext_small but also took significantly more time to train (see #conclusion)
Run set
65
Metrics
Conclusion and Insights
- Going forward, the convnext models look like the best models to experiment with. They outperform their resnet counterparts.
- Although convnext_base gave me the best results, I will be experimenting with the smaller variants since they take significantly lesser time to train. After finding a set of hyperparameters that run well, I will then plug in the base model and squeeze out some extra performance from it.
- This is a good place to have a v0.0.1 demo of the snake-classification project even though it is still primitive compared to the final goals I want to achieve. I will then iterate and keep improving the demo.
Add a comment