torch.nn模块中函数eval()的含义是什么?

时间:2018-01-08 08:57:40

标签: pytorch

官方评论显示"这仅对Dropout或BatchNorm等模块有任何影响。"但我不了解它的实施。

1 个答案:

答案 0 :(得分:12)

Dropout和BatchNorm(可能还​​有一些自定义模块)在培训和评估过程中表现不同。您必须通过调用模型上的.eval()让模型知道何时切换到eval模式。

这会为模型中的每个模块设置self.trainingFalse。如果您正在实施自己的模块,在训练和评估期间必须采取不同的行为,您可以在执行此操作时检查self.training的值。