如何防止损失:在我拟合 keras 模型时出现 nan?



这是我的代码:

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)])

它正在运行时代并在准确性上变得更好,但是损失开始是NAN,准确性下降了。我使用了model.predict并从中遇到了错误。

有人得到了修复吗?

如果使用categorical_crossentropy作为损失函数,则模型的最后一层应为softmax

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

最新更新