0

使用 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。从图中可以清楚地看到这个“天花板”:

图表

我尝试过的事情:更改超级参数,更改输入数据形状,尝试不同的优化器。

任何提示表示赞赏,谢谢。并感谢帮助编辑我的帖子以使其更易于理解的人:)

其他两个模型的图表,处理相同的数据:

仅密集层

密集图

长短期记忆体

LSTM 图

4

0 回答 0