调整LSTM模型

时间:2019-12-16 17:04:50

标签: python tensorflow keras lstm

我并建立一个LSTM模型来预测给定字符序列的单词。现在,我的数据集只有大约3000个单词是alphaNumeric。由于某些原因,我达到了0.84的最高准确度,但我似乎无法超越。我尝试添加其他LSTM层,更改了学习率和批处理大小,但我无法超过.84精度限制。

我正在寻找有关如何进行调查的指南。我打算使用Hyperas调整模型。我不确定调整是否会有所帮助,因为当我从具有12个单元的3层LSTM一直到具有24个单元的3层时达到了.84限制。

这是我对模型的定义:

model = Sequential()

model.add(LSTM(24, input_shape=(data.getMaxLen(), data.uniqueChars), return_sequences=True))
model.add(LSTM(24, return_sequences=True))
model.add(LSTM(24, return_sequences=True))
model.add(TimeDistributed(Dense(12)))
model.add(AveragePooling1D())
model.add(Flatten())
model.add(Dense(data.uniqueTokensCount, activation='softmax'))

optimizer = RMSprop(lr=0.0005)
model.compile(loss='categorical_crossentropy', optimizer=optimizer, metrics=['accuracy'])

history = model.fit(data.X, data.Y,
                    batch_size=data.uniqueTokensCount,
                    epochs=10000,
                    callbacks=[print_callback])

型号:3xLSTM(24格),1x密集(12格),最大长度15 Model1 型号:3xLSTM(24格),1x密集(12格),最大长度8 Model2 型号:3xLSTM(12格),1x密集(6格),最大长度8 Model3

1 个答案:

答案 0 :(得分:0)

尝试查看您的验证损失是多少。因此,您可能过度拟合并没有超过0.84。看到您的训练准确性在波动,您可以尝试添加辍学或正则化函数以防止过度拟合。