Hi,
I noticed that my model yields poor results when trying to do this:
for epoch in num_epochs:
   model.train()
   # training scripts
   model.eval()
   #evaluate scripts

However, this script works perfectly fine:
for epoch in num_epochs:
   model.train()
   # training scripts

model.eval()
#evaluate scripts

So in the 2nd script, I wait for my model to finish training and evaluate, and in the 1st one, I evaluate in every epoch.
Why does the 1st method result in worse results?
Thanks