问题描述
感谢您对此事的关注。
我想继续用预先训练好的权重训练模型。当我用 model.eval()
评估这个预训练的模型时,一切都很好,模型会产生一些合理的结果,但是当我想进一步训练这个模型并用 model.train()
设置模式时,问题会发生。在前向循环期间,所有生成的结果在 model.train()
语句 (batchsize = 1
) 之后都将为零。
关于为什么会发生这种情况的任何想法?
非常感谢。
解决方法
Batch normalization 的工作原理是根据 batch 的估计均值和方差对所有激活进行标准化。
当 batchsize=1
时,您期望这些值是什么?
增加您的 batchsize
,看看是否会出现问题。