如何使用加载的LSTM注意模型对输入进行预测?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用加载的LSTM注意模型对输入进行预测?相关的知识,希望对你有一定的参考价值。

我是深度学习和Keras的完整入门者。我想建立一个分层的注意力网络,以帮助将评论分为几类。有毒,剧毒等。我从一个开放的存储库中获取了代码,并保存了模型。然后,我使用model_from_json加载模型。现在,我希望使用此加载的模型对输入文本(作为python输入或单独的文件)进行预测。

这是我正在使用的代码:https://www.kaggle.com/sermakarevich/hierarchical-attention-network/notebook

然后我做了:

model_json = model.to_json()
with open("model.json", "w") as json_file:
    json_file.write(model_json)
model.save_weights("model.h5")
print("Saved model to disk")

然后在单独的文件中:

json_file = open('model.json', 'r')
loaded_model_json = json_file.read()
json_file.close()
loaded_model = model_from_json(loaded_model_json,custom_objects={'AttentionWithContext':AttentionWithContext})
loaded_model.load_weights("model.h5")
print("Loaded model from disk")

我正在完美地获得“从磁盘加载模型”。我想知道我需要输入的格式,使用模型进行分类的方式和代码片段。由于我对此知识不多,所以如果有人可以帮助我使用python特定代码来使它起作用,这将非常有帮助。

答案

在进行预测时,请确保也要腌制标记符,否则输出将不正确。

    new = ["Your_text_that_you_want_to_check"]
    seq = tokenizer.texts_to_sequences(new)
    padded = pad_sequences(seq, maxlen=MAX_SEQUENCE_LENGTH)
    pred = model.predict(padded)

虽然预测将新文本转换为向量,以便对模型进行训练非常重要。我已经将训练数据转换为序列,然后将其填充为零,以便长度应相同,并且与预测时重复的步骤相同。但是请确保您腌制令牌标记。希望对您有所帮助!如果您在理解步骤时遇到困难,请告诉我。

以上是关于如何使用加载的LSTM注意模型对输入进行预测?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 LSTM 对图像进行时间序列预测?

Python时间序列模型推理预测实战:时序推理数据预处理(特征生成lstm输入结构组织)模型加载模型预测结果保存条件判断模型循环运行

Keras LSTM:如何预测超越验证与预测?

如何使用有状态 LSTM 模型进行预测,而不指定与我训练时相同的 batch_size?

LSTM模型预测cos函数

用于罕见事件时间序列预测的LSTM模型体系结构