二进制分类神经网络:Nan损失和NaN预测

时间:2019-09-24 15:19:29

标签: python keras deep-learning

此模型尝试基于具有400个数字的数组预测两个状态。在第一轮训练中,模型开始于前200个样本的损失,然后进入Nan损失。准确性保持在50%左右,当我打印测试集的预测时,它仅预测NaN。我的X_train的形状为(1934, 400, 1),我的y_train的形状为(1934,)。我已经尝试检查数据集中的NaN,但是没有。

我的模型如下:

model = Sequential()
model.add(LSTM(128, input_shape=(400,1), activation='relu', return_sequences=True))
model.add(Dropout(0,2))
model.add(LSTM(128, activation='relu'))
model.add(Dropout(0,2))
model.add(Dense(32, activation='relu'))
model.add(Dropout(0,2))
model.add(Dense(1, activation='sigmoid'))

opt = tf.keras.optimizers.Adam(lr=0.01)

# mean_squared_error = mse
model.compile(loss='binary_crossentropy',
              optimizer=opt,
              metrics=['accuracy'])

history = model.fit(X_train, y_train, epochs=3, validation_split = 0.1, shuffle=True, batch_size = 64)

edit:通过将激活功能更改为tanh来解决。乙状结肠保持乙状结肠!

1 个答案:

答案 0 :(得分:1)

通过将激活功能更改为“ tanh”解决了该问题。似乎辍学也应该是0.2而不是0.2,但这不是问题的原因。