model.train和model.eval用法

1. model.train()

启用 BatchNormalization 和 Dropout

2. model.eval()

不启用 BatchNormalization 和 Dropout

训练完 train 样本后,生成的模型 model 要用来测试样本。在 model(test) 之前,需要加上model.eval(),否则只要有输入数据,即使不训练,model 也会改变权值。这是model中含有的 batch normalization 层所带来的的性质。


在做one classification的时候,训练集和测试集的样本分布是不一样的,尤其需要注意这一点。

原文地址:https://www.cnblogs.com/h694879357/p/15371173.html