在训练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层。