I并构建LSTM模型来预测给定字符序列的单词。到目前为止,我的数据集只有大约3k个单词是alphaNumeric。由于某些原因,我达到了.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
型号: 3xLSTM (24芯),1x密集(12芯),最大长度8
型号: 3xLSTM (12芯),1x密集(6芯),最大长度8
发布于 2019-12-17 01:46:31
试着看看你的验证损失是什么。这可能是因为你过度拟合而没有超过0.84。看到您的训练精度波动,您可以尝试添加辍学或正则化,以防止过度拟合。
https://stackoverflow.com/questions/59361227
复制相似问题