我在我的数据集上测试了超过20种不同的LSTM网络架构,直到现在都没有遇到任何问题。但我尝试的这个模型在大约第110个周期时突然忘记了所有学过的内容,并出现NaN损失(见附件截图)。每次使用这个模型时都会发生这种情况。
模型结构如下:
model = keras.Sequential([ keras.kayers.Embedding(numberOfWords, embedding_vector_length, input_length=1000), keras.layers.Dropout(0.5), keras.layers.LSTM(256, dropout = 0.6), keras.layers.Dropout(0.6), keras.layers.Dense(128), keras.layers.Dropout(0.5), keras.layers.Dense(1, activation='sigmoid')])model.compile(optimizers.RMSprop(learning_rate=0.001, rho=0.9), loss='binary_crossentropy', metrics=['accuracy'])history = model.fit(x_train, y_train, epochs=700, callbacks=callbacks_list, batch_size=32, validation_data=(x_test, y_test))
我认为这里我做错了什么,但我经验不足,无法发现问题。有人能帮帮我吗?
回答:
在第6行指定使用’relu’有效果。虽然我不太确定为什么,因为我以为默认设置会有效,但不管怎样:
keras.layers.Dense(128, activation='relu')