Pytorch实践--eval 模式,每次预测相同的数据得到的概率不同

2022-10-08 08:38:33

描述:使用pytorch训练好的模型对数据进行预测时,将model设置为eval()模式之后,发现同样的数据每次预测时的概率值会变动。

分析:eval()可以将模型切换为 evaluation 模式,(仅仅当模型中含有Dropout和BatchNorm才起作用)。这里所说的 “模型中含有Dropout和BatchNorm ” 是指 包含在*_modules* 中(当类成员的type派生于Module时,该成员会自动划归为 _modules)。

查看源码发现,在某个成员函数里使用了 nn.Dropout ,但是不属于 _modules 所以出现每次预测相同的数据出现不同的概率的现象。
在这里插入图片描述
故:使用pytorch的Dropout 或 BN 构建网络时,一定要把该神经网络层放入 _modules 否则不起作用。

  • 作者:黑白象
  • 原文链接:https://blog.csdn.net/dendi_hust/article/details/96439027
    更新时间:2022-10-08 08:38:33