不收敛描述及可能原因分析

不收敛情景1

  • 描述
    从训练开始就一直震荡或者发散
  • 可能原因
    • 图片质量极差,人眼几乎无法识别其中想要识别的特征,对于网络来说相当于输入的一直都是噪音数据,比如通过resize的时候,图片的长宽比改变特别大,使图片丧失对应特征;或者tfrecord中图片大小是(m,n),但是读取的时候,按照(n,m)读取。所以loss一直震荡无法收敛
    • 大部分标签都是对应错误的标签
    • leaning rate 设置过大

不收敛情景2

  • 描述
    训练开始会有所下降,然后出现发散
  • 可能原因
    • 数据标签中有错误,甚至所有标签都有一定的错误,比如生成的标签文件格式和读取标签时设置的文件格式不一样,导致读取的标签是乱码;或者为标签中存在的空格未分配对应的编码,导致读取的空格为乱码(在OCR问题中)
    • learning rate 设置过大

不收敛情景3

  • 描述
    训练开始会有所下降,然后出现震荡
  • 可能原因
    • loss函数中正则化系数设置有问题,或者loss函数本身有问题。比如,在序列化问题中的label_smoothing设置过大,比如设置为0.9,一般设置为0.1即可(OCR问题中)
    • 数据标签中有错误,甚至所有标签都有一定的错误

不收敛场景4

  • 描述
    训练开始会有一点点,然后无法收敛,生成结果几乎一致,全局像素一样
  • 可能原因
    -参数初始化问题,比如网络中有bn的时候,如果把std初始化为0,会导致没有梯度回传。
Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐