Is there any dropout function inside the model?
If yes, please check the p.


The model is turned into eval mode after the first epoch training and it never turns back to train mode. You should call model.train() as


for epoch in range(num_epochs):
    model.train()
    ~~~