python - 如何防止丢失 : nan while I'm fitting my keras model?

标签 python keras

这是我的代码:

model = Sequential()
model.add(Dense(50, input_dim=33, init='uniform', activation='relu'))
for u in range(3): #how to efficiently add more layers
    model.add(Dense(33, init='uniform', activation='relu'))
model.add(Dense(122, init='uniform', activation='sigmoid'))

model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])

#This line of code is an update to the question and may be responsible
model.fit(X_train, Y_train, nb_epoch=35, batch_size=20, validation_split=0.2, callbacks=[EarlyStopping(monitor='val_loss', patience=10)])

它正在运行 Epochs 并在准确性上变得更好,但随后损失开始为 nan,准确性下降。我使用了 model.predict 并从中得到了一个错误。

有人解决了吗?

最佳答案

如果您使用 categorical_crossentropy 作为损失函数,那么模型的最后一层应该是 softmax

这里您使用的是 sigmoid,它有可能使输出的所有维度都接近 0,这将导致损失溢出,因此 nan

关于python - 如何防止丢失 : nan while I'm fitting my keras model?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42472447/

相关文章:

python - 如何使用 keras.backend.gradients() 获取梯度值

python - 如何在 Keras 中实现 Sklearn Metric 作为 Metric?

使用 Softmax 进行二元分类

python - "x"中的 "for x in range(10):"是什么意思?

python - pandas 用其他数据帧替换数据帧中的行

machine-learning - 为什么在 Keras 中实现 Resnet50 禁止小于 32x32x3 的图像?

tensorflow - 使用tensorflow在keras中切片损失函数的输入

python - 如何在 Keras 中将损失函数指定为二次加权 kappa?

python - 添加列表元素

python - 使用 python-telegram-bot 进行语音识别,无需下载音频文件