在深度学习中,有时候会遇到各种奇奇怪怪的问题,这些问题也不容易在网上搜到解答。一些有报错的问题还好,没有报错的问题简直就是灾难。

在这里插入图片描述
在刚开始训练的时候,ce loss 是明显下降的,但训练了一段时间后,在以上图片中,可以看到dice loss有轻微下降,而ce loss几乎不动,模型还没有收敛,这时候肯定是出问题了。

问题在哪呢?

我用的是Pytorch中的CrossEntropyLoss()函数。注意这个函数是自带softmax操作的。

而我在传入网络输出前,又做了一次softmax。这样就做了两层的softmax。这就导致了交叉熵损失下降不下去,回传梯度几乎为0。

解决方法

删掉一层softmax。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐