I tried with setting below:

Train dataloader: shuffle on
Validation dataloader: shuffle off

with all other codes maintained.
The result was:

Capture.PNG1190×773 85.9 KB


Orange line: previous result
Red line: current result

Still validation Top-1, Top-5 accuracy is not good, so I think this is not main problem of my code.
But, I find that many successful code such as pytorch imagenet tutorial 2 uses different shuffle option between train(shuffle on) and validation(shuffle off).
Why this different option needs? Can someone explain about this?
Also, more suggestion on my codes will be welcomed.