[踩坑] 交叉熵损失不下降

在使用Pytorch进行深度学习训练时,作者遇到了模型训练后期交叉熵损失(celoss)几乎不变,而dice loss轻微下降的情况。这通常是由于在网络输出前进行了两次softmax操作导致的。双重softmax使得损失几乎无法进一步下降,从而阻碍了模型的收敛。解决方案是删除一层softmax操作。通过调整模型结构,确保损失函数能够正常工作,可以促进模型的训练和性能提升。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

问题在哪呢?

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

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

解决方法

删掉一层softmax。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值