在我的RNN模型中的每个时期,验证损失都增加了,并且验证准确性降低了

问题描述 投票:0回答:1

我正在研究滥用和暴力内容。当我训练模型而不是像这样的表演时。

Train on 9087 samples, validate on 2125 samples
Epoch 1/5
9087/9087 [==============================] - 33s 4ms/step - loss: 0.3193 - accuracy: 0.8603 -         val_loss: 0.2314 - val_accuracy: 0.9322
Epoch 2/5
9087/9087 [==============================] - 33s 4ms/step - loss: 0.1787 - accuracy: 0.9440 - val_loss: 0.2039 - val_accuracy: 0.9356
Epoch 3/5
9087/9087 [==============================] - 32s 4ms/step - loss: 0.1148 - accuracy: 0.9637 - val_loss: 0.2569 - val_accuracy: 0.9180
Epoch 4/5
9087/9087 [==============================] - 33s 4ms/step - loss: 0.0805 - accuracy: 0.9738 - val_loss: 0.3409 - val_accuracy: 0.9047
Epoch 5/5
9087/9087 [==============================] - 36s 4ms/step - loss: 0.0599 - accuracy: 0.9795 - val_loss: 0.3661 - val_accuracy: 0.9082

You can see in this graph.

这里我在模型中使用以下图层-

model = Sequential()
model.add(Embedding(8941, 256,input_length=20))
model.add(LSTM(32, dropout=0.1, recurrent_dropout=0.1))
model.add(Dense(32,activation='relu'))
model.add(Dropout(0.4))
model.add(Dense(4, activation='sigmoid'))
model.summary()

model.compile(loss='binary_crossentropy',
          optimizer=optimizers.Adam(lr=0.001),
          metrics=['accuracy'])

history=model.fit(x, x_test,
      batch_size=batch_size,
      epochs=5,
      verbose=1,
      validation_data=(y, y_test))

请帮助我解决这个问题........

python keras deep-learning lstm recurrent-neural-network
1个回答
0
投票

它实际上取决于您的数据,但似乎该模型非常快地拟合了火车设置(在第二个时期之后)。

尝试:

  1. 降低学习率
  2. 增加批量大小
  3. 添加正则化
  4. 提高辍学率

此外,当您的模型为每个样本输出一个4长度的输出时,似乎使用binary_crossentropymodel.add(Dense(4, activation='sigmoid'))这也可能会引起问题。

© www.soinside.com 2019 - 2024. All rights reserved.