在我安装 keras 模型时如何防止丢失:nan?

Nic*_*row 3 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)])
Run Code Online (Sandbox Code Playgroud)

它正在运行 Epochs 并且准确性越来越好,但随后损失开始变得 nan 并且准确性下降了很多。我也使用过model.predict并从中得到了错误。

有人解决了吗?

ind*_*you 6

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

在这里,您正在使用sigmoidwhich 有机会使输出的所有维度接近 0,这将导致损失溢出,因此nan.