Accuracy slowly decreasing

Hi guys, could you help me to explain my results? I m training dataset with 130000 images with 3 categories (very imbalanced 1, 10, 10). And I recieve these results.

Epoch: 1 | train_loss: 1.0891 | train_acc: 0.5807 | val_loss: 1.0139 | val_acc: 0.6900
Epoch: 2 | train_loss: 1.0873 | train_acc: 0.5587 | val_loss: 0.9711 | val_acc: 0.7617
Epoch: 3 | train_loss: 1.0924 | train_acc: 0.5481 | val_loss: 1.0545 | val_acc: 0.5200
Epoch: 4 | train_loss: 1.0906 | train_acc: 0.5476 | val_loss: 0.9557 | val_acc: 0.7779
Epoch: 5 | train_loss: 1.0899 | train_acc: 0.5465 | val_loss: 0.9806 | val_acc: 0.7359
Epoch: 6 | train_loss: 1.0905 | train_acc: 0.5524 | val_loss: 1.0477 | val_acc: 0.4923
Epoch: 7 | train_loss: 1.0891 | train_acc: 0.5536 | val_loss: 1.0416 | val_acc: 0.5334
Epoch: 8 | train_loss: 1.0891 | train_acc: 0.5424 | val_loss: 1.0141 | val_acc: 0.6006
Epoch: 9 | train_loss: 1.0900 | train_acc: 0.5343 | val_loss: 1.0208 | val_acc: 0.6013
Epoch: 10 | train_loss: 1.0888 | train_acc: 0.5391 | val_loss: 1.0387 | val_acc: 0.5357
Epoch: 11 | train_loss: 1.0860 | train_acc: 0.5336 | val_loss: 0.9196 | val_acc: 0.8061
[INFO] Total training time: 11991.201 seconds

Training accuracy is slowly decreasing, why? And val acc is jumping.

I don’t know if you are trying to counter the class imbalance, but if you are using e.g. a WeightedRandomSampler or a weighted loss, the accuracy could decrease due to the accuracy paradox and might not be the best metric for your use case.

I use this one

nn.CrossEntropyLoss(weight=torch.tensor([0.59,6.24,6.39])).to(device)

But now I have another problem, the train accuracy is increasing but train loss almost stays at one level.