【问题】检验神经网络中是否出现nan的方法
程序员文章站
2024-03-25 19:52:46
...
问题
在用Keras搭建模型训练过程中,遇到了训练了几个batch之后网络中间层的输出出现了nan,基本确定是某除零操作导致,想打印前馈出现nan的样本分析
分析
第一反应是使用.any()函数判断有无nan存在,发现无效,原因是.any()和.all()函数只能判断可以转化为True或False的值,而nan既不等于True也不等于False
google之后发现可以利用nan不等于自身的特性来将问题转化:
>>>np.nan == np.nan
False
>>>np.nan != np.nan
True
所以对于要检验的数组(Tensor)test:
if np.sum(test!=test) != 0:
print 'nan is in test' ###test中存在nan
对于上面的sum()函数也可以用.any()来代替,即出现了True的项(自己不等于自己的值,即nan)
上一篇: OpenCV harris角点检测
下一篇: python中的nan处理
推荐阅读
-
【问题】检验神经网络中是否出现nan的方法
-
java中Double类型判断值是否为NaN的四种方法
-
ASP.NET MVC中解析淘宝网页出现乱码问题的解决方法
-
ASP.NET MVC中解析淘宝网页出现乱码问题的解决方法
-
Android中利用NetworkInfo判断网络状态时出现空指针(NullPointerException)问题的解决方法
-
Android中利用NetworkInfo判断网络状态时出现空指针(NullPointerException)问题的解决方法
-
Android开发中调用系统相册上传图片到服务器OPPO等部分手机上出现短暂的显示桌面问题的解决方法
-
Android开发中调用系统相册上传图片到服务器OPPO等部分手机上出现短暂的显示桌面问题的解决方法
-
jquery中live方法换on方法出现问题的解决办法详解
-
Vue中 v-if 和v-else-if页面加载出现闪现的问题及解决方法