深度学习网络不收敛?网络输出全为零?应该如何检查?

引言

已经有人作出了相应的文章详细分析,具体可参考:37 Reasons why your Neural Network is not working, 这篇文章主要从四个方面进行探讨:数据集制作、数据归一化-数据增强、网络实现、网络训练,当你对自己的网络无从下手时或一直因为网络模型不收敛而心烦意乱时,也许这篇文章可以帮助到你。

前提

网络训练了至少12小时。其中可以看到梯度变化,损失下降的现象。但是当你查看模型效果的时候,以pixel级别的FCN为例,你发现模型输出全为0或者很接近于0的值,此时说明你训练的网络模型正在输出垃圾,此时应该怎么做呢?

本文对上面提到的文章进行翻译,并加入自己的见解,希望能帮到你。

1.数据集检查

(1)检查输入数据
在网络输入前面进行检查,看数据输入是否正确。例如在做图片处理的时候,是否弄清了图像的高度和宽度,opencv和PIL数据读取的方式是不一样的,opencv是BGR读取,而PIL是RGB读取,色彩通道顺序不一样,还有就是ground_truth的时候一定得注意x,y是否正确对应图像的高和宽。此时可打印或显示若干批量的网络输入和目标输出,确保他们是正确的。

(2)尝试随机数入
尝试传递随机数而不是真是数据,看看错误产生的方式是否想同。如果是,说明在某些时候网络吧数据化为了垃圾,此时可尝试逐层调试,并查看出错的地方。

(3)检查数据加载器
原始数据或许很好,但是数据预处理传输到网络过程中的代码可能有问题,在网络输入前应该打印第一层的输入并仔细检查。

(4)确保输入与输出关联
检查少许输入样本是否有正确的标签,同样也确保shuffle输入样本同样对输出标签有效。

(5)输入与输出之间的关系是否太随机?
如何看待随机呢,好比训练一个网络预测随

  • 15
    点赞
  • 90
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值