在训练神经网络的时候突然遇到了loss=nan的情况,经过一些检查,问题应该是出在输入数据中包含了nan特征。
如下图,若每一行为一个数据,则第二、三、四行会导致nan。
检查数据中是否含有nan的方法:
1、pd.isnull().any()
2、math.isnan()
方法一的时间效率更高。
挑选出含nan的数据
for i in range(len(x_data)):
a = x_data[i]
if pd.isnull(a).any():
dataTest2.append(a.copy())
for i in range(len(x_data)):
a = x_data[i]
for j in range(len(x_data[i])):
if math.isnan(a[j]):
dataTest2.append(a.copy())
break