参考:https://zhuanlan.zhihu.com/p/208233193
-
model.train()
启用 BatchNormalization 和 Dropout -
model.eval()
不启用 BatchNormalization 和 Dropout
训练完 train 样本后,生成的模型 model 要用来测试样本。在 model(test) 之前,需要加上model.eval(),否则只要有输入数据,即使不训练,model 也会改变权值。这是model中含有的 batch normalization 层所带来的的性质。