【tensorflow】训练网络loss突然出现nan的情况

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/shwan_ma/article/details/80472996

尝试在MNIST上跑AlexNet,然而发现loss一直下降的时候,在某一时刻突然出现了nan。
在tensorboard上显示如下:
这里写图片描述

可以看到在最后面的accuarcy突然下降。一开始百思不得其解,
原因其实在于交叉熵中的 y_truth * log(y_predict)
log(0) * 0的时候, 则会出现NaN,
一旦出现这个情况,网络训练结果必然完蛋

解决办法其实也很简单:
在交叉熵的公式中加入一个比较小的数:
这里写图片描述

参考:
https://www.zhihu.com/question/52242037/answer/184101547
https://blog.csdn.net/qq_32458499/article/details/79468426

猜你喜欢

转载自blog.csdn.net/shwan_ma/article/details/80472996
今日推荐