sphereface loss不收敛分析

本文记录了一次深度学习模型训练过程中的问题排查经历,包括调整学习率、权重衰减参数、模型架构、损失函数及数据预处理等方面,最终发现未调用optimizer.step()导致模型无法更新权重。

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

1:lr 从1e-2 ~ 1e-5
2:weight_decay = 1e-2 ~ 1e-4 没有作用
3:怕是sphereface出了问题,把最后一层的fc层,改成了原有的Linear,结果还是不好。最后改了loss (cross_entorpy)函数还是不对
4:考虑resnet101的预训练模型不对,发现确实是原有模型
5:考虑加载数据问题,将原来的初始大小由299改为了200
6:换了resnet50,没有任何改善
7:图像开始预处理选择的是mean和std,考虑resnet和inception 的区别确实是这样的。
8:查看标签与图片匹配的真的对吗

找点思路:偶然发现pred一般都是6 或者8 ,这有什么偶然吗?
看了半天发现loss.backward(), optimizer_bone.zero_grad()写反了,但是好像也没影响。
pass上面九个猜想,终于找到了原因:
optimizer.step()没加,这样的话,需要总结一下一下三行代码的意思了:

optimizer.zero_grad().
loss.backward()
optimizer.step()

每次看论文的时候都会怀疑论文是不是造假了,有时候想想自己会因为各种小原因而复现不了代码,真的觉得自己是个弟弟

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值