如何解决带有预训练权重的 Model.train() 使结果全为 0 而 model.eval() 很好
感谢您对此事的关注。
我想继续用预先训练好的权重训练模型。当我用 model.eval()
评估这个预训练的模型时,一切都很好,模型会产生一些合理的结果,但是当我想进一步训练这个模型并用 model.train()
设置模式时,问题会发生。在前向循环期间,所有生成的结果在 model.train()
语句 (batchsize = 1
) 之后都将为零。
关于为什么会发生这种情况的任何想法?
非常感谢。
解决方法
Batch normalization 的工作原理是根据 batch 的估计均值和方差对所有激活进行标准化。
当 batchsize=1
时,您期望这些值是什么?
增加您的 batchsize
,看看是否会出现问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。