记录 训练卷积神经网络时遇到的问题

问题1、softmax分类的loss最后会停在0.6931这个值
原因分析:在分类层使用了keras.layers.Lambda,导致分类器没有可训练的参数,因此没有分类能力,即,无论是否为object,softmax的输出都是0.5,根据loss公式计算得到0.6931。
解决方案:将keras.layers.Lambda换成keras的Layer类。
参考链接:https://blog.csdn.net/weixin_34343689/article/details/88111552

问题2、分类和回归的loss都慢慢变为NaN
原因分析:训练数据中有脏数据。在生成batch数据时,由于每个样本中,labels的个数和可用的anchors个数不一定相同,所以存放数据的矩阵中有一些填充的0,导致了脏数据。
解决方案:在使用数据前先把多余的0删除。

问题3、使用多GPU训练时,loss会突然变成NaN
原因分析:这个问题和上个问题很像,所以也是数据的问题。在解决上个问题时,其中anchor_offsets数据中本身就含有很多0,因为只有anchor和label有重合的时候offset才有用,否则都为0。因此在删除多余的0时误删了anchor_offsets中原本的数据,导致训练数据出现了问题,训练不正确。
解决方案:根据anchor_to_use的个数,只删除数据最后多余的0。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值