Hello all,
This is my first post ever in this forum and I was pretty unsure whether I should post or not, but I decided to give it a go.
Since I’ve started watching the online course I tried to make a multi-class classifier based on ResNet-34 as the example showed in the lecture. The dataset I used is the WikiArt dataset, which contains paintings of many artists organized by style as shown below.
Then I created an ImageDataBunch and everything loads fine, the classes appear to be 19 as expected.
np.random.seed(42)
data = ImageDataBunch.from_folder
(path,train='.',valid_pct=0.2,size=256,num_workers=6).normalize(imagenet_stats)
After that I created I learner based on ResNet-34 and trained it for 6 epochs
with lr=0.002
producing the results below which are not satisfying.
Subsequently I refined the model using learner.unfreeze()
and after 4 epochs
of training the error_rate went to 0.3787. I am attaching a photo of the confusion_matrix
.
Thing I’ve tried:
- Increasing learning_rate -> validation_loss ↑ (diverges)
- More epochs -> Not significant improvement →probably overfitting after some point
- Changing size parameter on DataBunch -> Not significant improvement
- Merge similar classes -> (ex. High Renaissance, Late Renaissance → Renaissance)
some improvement but nothing extraordinary - Delete classes with low representation -> Same as above.
What should I do/try?
Any suggestions will be welcomed! (sorry for the long post)
Thanks in advance to all