使用tensorflow做三层神经网络的简单二分类过程中遇到的损失函数变成nan问题处理

简述:某些输入数据归一化之后变成了nan,在归一化之后清洗下nan值就可以。希望能帮助到跟我一样新手入门的道友们。

描述:学习使用tensorflow做三层神经网络的简单二分类,遇到了损失函数loss从某个时间开始突然可是变成nan的问题。一开始是以为有些参数没有选对,尝试了网上能搜到的方法,也没有用。后来,把所有能输出的值都输出了,一步步看是哪个值变成了nan。首先定位到,输出预测值有某个变成了nan,因为损失函数计算要通过这个预测值,所以损失函数也变成了nan。于是,再查看这次训练时候的输入数据(数据是经过(01归一化的),发现某一行是nan(如下图,我粘贴到sublime中的,方便查看)。所以我定位到是输入数据出了问题,归一化后之后,某些数据成了nan.所以在归一化之后应该做下nan清洗,有下面两个方法:

norm_data = norm_data.fillna(0)#把nan填充成0,注意这里要赋值操作
norm_data = norm_data.dropna(axis=0)#参数0删除行,1删除列

 

你可能感兴趣的:(使用tensorflow做三层神经网络的简单二分类过程中遇到的损失函数变成nan问题处理)