Hi. There are a couple of things you can use here:


If you want to use this model, you can try out. using data augmentation using transforms for training you model on more images and its variations. Additionally, you should increase the number of filters for your Conv2d layers that should help the model to learn more types of underlying features and train better. For example, increasing the out_channels in the first Conv2d layer from 12 to something like 64 and similarly for the rest of the layers. Usually the best practice is to make sure that these are powers of 2 i.e. 16, 32, 64, 128 and so on.


Instead of using this architecture, you can make use of pre-trained networks and use the technique of Transfer Learning. That should give you a pretty good accuracy.


Additionally, play around with different optimizers like Adam, Adadelta, RMSProp etc.


I hope this helps