【发布时间】:2020-09-26 04:47:15
【问题描述】:
在使用 gensim 创建预嵌入层后,对于 4600 条记录,我的 val_accuracy 下降到 45%:-
model = models.Sequential()
model.add(Embedding(input_dim=MAX_NB_WORDS, output_dim=EMBEDDING_DIM,
weights=[embedding_model],trainable=False,
input_length=seq_len,mask_zero=True))
#model.add(SpatialDropout1D(0.2))
#model.add(Embedding(vocabulary_size, 64))
model.add(GRU(units=150, return_sequences=True))
model.add(Dropout(0.4))
model.add(LSTM(units=200,dropout=0.4))
#model.add(Dropout(0.8))
#model.add(LSTM(100))
#model.add(Dropout(0.4))
#Bidirectional(tf.keras.layers.LSTM(embedding_dim))
#model.add(LSTM(400,input_shape=(1117, 100),return_sequences=True))
#model.add(Bidirectional(LSTM(128)))
model.add(Dense(100, activation='relu'))
#
#model.add(Dropout(0.4))
#model.add(Dense(200, activation='relu'))
model.add(Dense(4, activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer='rmsprop',
metrics=['accuracy'])
型号:“sequential_4”
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
embedding_4 (Embedding) (None, 50, 100) 2746300
_________________________________________________________________
gru_4 (GRU) (None, 50, 150) 112950
_________________________________________________________________
dropout_4 (Dropout) (None, 50, 150) 0
_________________________________________________________________
lstm_4 (LSTM) (None, 200) 280800
_________________________________________________________________
dense_7 (Dense) (None, 100) 20100
_________________________________________________________________
dense_8 (Dense) (None, 4) 404
=================================================================
Total params: 3,160,554
Trainable params: 414,254
Non-trainable params: 2,746,300
_________________________________________________________________
完整代码位于 https://colab.research.google.com/drive/13N94kBKkHIX2TR5B_lETyuH1QTC5VuRf?usp=sharing
这对我很有帮助。因为我是深度学习的新手,我几乎尝试了所有我知道的东西。但现在都是空白。
【问题讨论】:
-
你能详细说明这个问题吗?您从模型中得到什么样的预测?
-
可能是您的模型过拟合。你检查过混淆矩阵吗?
-
@AbhinavGoyal 我在标记化后将 X 作为输入传递,结果我的模型预测句子将在 Y 中出现的类别。您可以在colab.research.google.com/drive/…查看代码
-
@Aka 是的,我已经检查了矩阵,但由于模型只给出了 30% 的准确率。矩阵信息对我没有帮助。看看代码colab.research.google.com/drive/…
标签: python tensorflow machine-learning keras lstm