这是我的代码:
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)])
它运行了 Epoch 并在准确性上变得更好,但随后损失开始为 nan 并且准确性大幅下降。我用了model.predict
并从中得到了一个错误。
有人解决了吗?
如果您正在使用categorical_crossentropy
作为损失函数,那么模型的最后一层应该是softmax
.
这里你正在使用sigmoid
这有可能使输出的所有维度接近 0,这将导致溢出损失,因此nan
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)