单词级语言模型的准确性极差,每个时期的训练时间长



使用 Keras API 设置我的第一个单词级语言模型。准确性结果极差,所需的训练时间长得令人难以置信。

我使用 Keras 库开发了我的第一个单词级语言模型,并将我的训练集作为《低俗小说》的脚本。我清理了所有标点符号的文本,并将所有单词转换为小写。当我开始在给定数据集上训练我的模型时,它的准确率为 3%,每个时期的训练时间为 6-7 分钟。这是非常令人沮丧的,我想知道我是否应该调整我的超参数,或者这是我的模型的正常行为,它会在更多的时期产生更好的结果?

model=Sequential()
model.add(LSTM(256, input_shape=(X.shape[1], X.shape[2]), 
return_sequences=True))
model.add(Dropout(0.5))
model.add(LSTM(256))
model.add(Dropout(0.5))
model.add(Dense(y.shape[1], activation='softmax'))
model.compile(optimizer='adam',loss='categorical_crossentropy', metrics= 
['accuracy'])
model.fit(X,y,batch_size=128,epochs=100)

从观察每个纪元 6-7 分钟并不多开始,您可以检查以下原因:

  1. 您是在 GPU 上还是在 CPU 上训练?通常,它在 GPU 上的运行速度应该快得多。

  2. LSTM 的每个单元 256 个单元是一个相当大的尺寸。尝试减少到 128 甚至 64,检查性能是否受到影响。

  3. 数据集的维度是多少?如果数据集很大,则训练花费大量时间是正常的。
  4. 如果您对上述所有问题都有答案,您可以尝试修改batch_size;但是,要小心,因为不建议使用非常大的批量大小(我建议增加到 256,但不要更多)。
  5. 检查数据的完整性。如果您知道数据来自一个完善的来源,请注意将数据馈送到神经网络的方式(清理、预处理)。也许输入数据的方式(因变量 (y) 和/或X_train)不正确。

最新更新