一二三四五 上山打老虎

使用Pytorch的resnet34对于单个照片测试(batchsize=1)时结果不正确踩的坑

问题

测试的时候,batchsize=1时结果不正确,而batchsize>1时结果都是正确的。
设置batchsize>1,然后求 net(data[0].unsqueeze(0).to(devices[0]))的结果与单个照片测试的结果相同。

坑点

没有在测试前加上net.eval(),作用是不启用 Batch Normalization 和 Dropout。
训练完train样本后,生成的模型model要用来测试样本。在model(test)之前,需要加上model.eval(),否则的话,有输入数据,即使不训练,它也会改变权值。这是model中含有BN层和Dropout所带来的的性质。

参考链接:https://cloud.tencent.com/developer/article/1819853

posted @   abestxun  阅读(439)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示