官方评论显示"这仅对Dropout或BatchNorm等模块有任何影响。"但我不了解它的实施。
答案 0 :(得分:12)
Dropout和BatchNorm(可能还有一些自定义模块)在培训和评估过程中表现不同。您必须通过调用模型上的.eval()
让模型知道何时切换到eval模式。
这会为模型中的每个模块设置self.training
到False
。如果您正在实施自己的模块,在训练和评估期间必须采取不同的行为,您可以在执行此操作时检查self.training
的值。