I found that this is because the _model.train()_ did not open again when evaluation ends. solution: just move _mode.train()_ to the epoch loop: - model.train() for epoch in range(args.start_epoch, args.epochs): -> for epoch in range(args.start_epoch, args.epochs): + model.train()