在训练CNN时,loss稳定在log(类别数)

参见知乎问题!

https://www.zhihu.com/question/275774218

很多框架都会有一个问题,当卷积 weight NaN 之后,卷积的 output 会变成 NaN。然后过了一个 FC,就变成正常的数字了,但是这时候所有 channel 的 output 值相同。

建议打印中间卷积层 output 以检查是否是这个情况。

 

相关问题:解决Caffe训练过程中loss不变问题 - CSDN博客

  • loss = −log(p),p=0.5的时候,loss刚好是0.69。看看输出是否都是一样的
  • 挑几个层看看,weight值是否NaN
  • 检查是否代码问题,是否有bug;调参数、learning rate等看看

 

我以前也碰到过这个问题,0.69, 2.302表明网络就是在随机的猜。我遇到过下面两种原因

1.可能是你的代码有bug,尤其注意一下读数据和读label有没有搞错,以及data augmentation的有没有写出大问题。

2.你有没有加weight decay,这点很关键。你可以看看你网络学出的weight尤其是bias,是不是很大(比如100,-80啊这种), 尤其是最后的fc层。




posted @ 2018-05-08 16:15  静悟生慧  阅读(2202)  评论(0编辑  收藏  举报