使用 keras simpleRNN 层,我正在撞墙。我还有另外两个模型,一个只有完全连接的 Dense 层,一个使用 LSTM,它按预期工作,所以我认为问题不是数据处理。
对于上下文,我使用的是 tf.keras reuters 数据集,该数据集是标记化的,输出数据由我分类的 46 个可能的标签组成。
下面是模型代码。
modelRNN = Sequential()
modelRNN.add(Embedding(input_dim=maxFeatures, output_dim=256,input_shape=(maxWords,)))
modelRNN.add(SimpleRNN(1024))
#modelRNN.add(Activation("sigmoid"))
modelRNN.add(Dropout(0.8))
modelRNN.add(Dense(128))
modelRNN.add(Dense(46, activation="softmax"))
modelRNN.compile(
optimizer='adam',
loss='categorical_crossentropy',
metrics=['accuracy'],
)
我正在使用以下参数进行拟合
historyRNN = modelRNN.fit(x_train, y_train,
epochs=100,
batch_size=512,
shuffle=True,
validation_data = (x_test,y_test)
)
拟合这个模型,val_accuracy 始终为 0,3762,val_loss 为 ~3,4。从图中可以清楚地看到这个“天花板”:
我尝试过的事情:更改超级参数,更改输入数据形状,尝试不同的优化器。
任何提示表示赞赏,谢谢。并感谢帮助编辑我的帖子以使其更易于理解的人:)
其他两个模型的图表,处理相同的数据:
仅密集层
长短期记忆体