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试一试,代价就是训练速度会非常非常慢。


还有一个要检查的点就是要看一下网络的结构是否合理,我在网上下载的network in network的网络结构,最后一层竟然没有一层全连接把输出变为类别数,这让训练陷入了要么出现nan要么结果一直不变的bug境地。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值