最近在
猫狗识别
项目中,不知为何准确率(训练集准确率和验证集准确率)一直处于0.5左右,这说明网络根本没有学习。后来查阅了许多他人的经验,并做了总结。
首先谈谈我的是如何解决的:
关于优化器,我最开始使用的的是 torch.optim.Adam()
,但是训练100个Epoch后,准确率始终在 49% ~ 50%。
解决方法: 换个优化器!我使用的是 torch.optim.SGD()
,其他的或许也行,但我还没有尝试。
Note:
出现以上问题时,我们会发现 loss
是 0.69,这是因为输出 0, 1 的概率都是0.5,而 \(-\ln 0.5=0.69\) 。
网络上也有一些解决方法,可以对照检查自己的代码:
原文:https://www.cnblogs.com/xxxxxxxxx/p/11508020.html