Thanks,
I thought that a good measure to know that a model is actually learning something could be “average batch loss per epoch”
which could be calculated by collecting all the loss.item() in the epoch and then taking an average.
Also, seems like loss.detach().cpu().numpy() should not be used while training.