首页 > 代码库 > caffe中cifar10的full_train模型出现nan的解决办法

caffe中cifar10的full_train模型出现nan的解决办法

caffe在cifar10 的example上给出了两个模型,一个是quick模式,一个是full模式,训练full模式时会出现loss=nan的错误(当然不会报错,不过出现这个结果就是bug)


自己google了一下,在github上找到了原因跟解决方案,原来是作者把用在cuda-convnet的模型照搬过来了,在caffe上的模型应该去掉LRN层,所以解决的方法很简单:将网络结构中所有的归一化层全部去掉,并修改下一层的bottom参数,然后就不会出现loss=nan的错误了。


当然,如果自己做实验时出现loss=nan的问题时,我的一个解决办法是修改学习率,改的小一点就不会出现错误了。实在不行,就把里面的relu函数变为sigmoid试一试,代价就是训练速度会非常非常慢。


caffe中cifar10的full_train模型出现nan的解决办法