微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

带有预训练权重的 Model.train() 使结果全为 0 而 model.eval() 很好

如何解决带有预训练权重的 Model.train() 使结果全为 0 而 model.eval() 很好

感谢您对此事的关注。

我想继续用预先训练好的权重训练模型。当我用 model.eval() 评估这个预训练的模型时,一切都很好,模型会产生一些合理的结果,但是当我想进一步训练这个模型并用 model.train() 设置模式时,问题会发生。在前向循环期间,所有生成的结果在 model.train() 语句 (batchsize = 1) 之后都将为零。

关于为什么会发生这种情况的任何想法?

非常感谢。

解决方法

Batch normalization 的工作原理是根据 batch 的估计均值和方差对所有激活进行标准化。
batchsize=1 时,您期望这些值是什么?

增加您的 batchsize,看看是否会出现问题。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。