最近上手pytorch,搭了一个3D版本的Alexnet模型用于对医学图像简单的进行分类,期间又踩了一个坑,损失函数的loss值在第二步就飙到了好几万,查了好几天也没查到为啥,最初是以为图像预处理部分的问题,(图像归一化方式不正确),后来发现是优化器的坑。
最初用的优化器是adam,(甚至我还想试试Nadam,可惜截至2021.7.7,pytoch好像没实现这个),然后损失函数的值就成了下面这样(真感人):
后来看了个知乎链接(链接如下),说图像领域的优化器最好是选择sgd+动量,试了下,结果发现还真有效:
链接:
https://www.zhihu.com/question/315772308/answer/1636730368
损失值:
当然不要在意我这感人的准确率,我这从头开始训练的(没有加载预训练权值),据说这种现象是正常的。
参考链接:https://www.zhihu.com/question/315772308/answer/1636730368