<参考链接1:http://blog.csdn.net/hyqsong/article/details/51933255>
<参考链接2:http://blog.csdn.net/ying86615791/article/details/60757573>
<参考链接3:http://blog.csdn.net/u010911921/article/details/71079367>
1. 数据标签未从0开始(caffe中要求标签从0开始)
2. 学习率设置较高
3. 网络输入与输出的类别数量不一致
可以在solver里面设置:
debug_info: true
查看各个层的data和diff是什么值,NAN为无效数字,INF为无穷大
由于loss的最大值由FLT_MIN计算得到,其对应的自然对数正好为-87.3365
这说明softmax在计算的过程中得到了概率值出现了0值,而softmax是指数函数,其值均大于0,所以是计算过程中出现了float溢出异常,也就是出现了inf、nan等异常值,导致softmax输出为0
当softmax之前的feature值过大时,由于softmax先求指数,会超出float的数据范围,成为inf;inf与其他任何数值的和都是inf,softmax在做除法时任何正常范围的数值除以inf都会变成0,然后求loss就出现了87.3356的情况