对于一些含有BatchNorm,Dropout等层的模型,在训练和验证时使用的forward在计算上不太一样。在前向训练的过程中指定当前模型是在训练还是在验证。
model.train()#使用BatchNormalizetion()和Dropout()
model.eval()#不使用BatchNormalization()和Dropout()
官方文档
参考链接:
1.pytorch 模型的train模式与eval模式
2.Pytorch中的 model.train() 和 model.eval() 模式