You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:如何基于Keras和TensorFlow加载已保存模型并实现预测

加载Keras训练模型并实现预测的完整步骤

嗨,我来给你一步步讲清楚怎么操作哈!首先得提醒你,训练的时候除了保存模型,一定要把训练时用的Tokenizer也保存下来,不然预测时文本预处理的规则和训练时不一致,结果肯定不准。

第一步:训练阶段先保存Tokenizer和模型

你之前训练完模型后,除了用代码保存模型,还要把Tokenizer存成文件,这样预测时能直接复用训练时的文本编码规则:

import pickle
from tensorflow.keras.models import load_model

# 训练完Tokenizer之后立刻保存它
with open('tokenizer.pickle', 'wb') as handle:
    pickle.dump(tokenize, handle, protocol=pickle.HIGHEST_PROTOCOL)

# 同时保存训练好的完整模型
model.save('stackoverflow_text_model.h5')

第二步:创建预测脚本,加载模型和Tokenizer

新建一个比如predict_post_tag.py的文件,先把之前保存的模型和Tokenizer加载进来:

from tensorflow.keras.models import load_model
import pickle
from tensorflow.keras.preprocessing import text

# 加载训练好的Keras模型
model = load_model('stackoverflow_text_model.h5')

# 加载保存的Tokenizer,保证文本编码规则和训练时一致
with open('tokenizer.pickle', 'rb') as handle:
    tokenize = pickle.load(handle)

第三步:预处理待预测的文本

你要预测的文本(比如你例子里的"angular expression in ng-re...")需要和训练时的预处理步骤完全同步:

# 待预测的Stack Overflow帖子文本
txt = "angular expression in ng-repeat not working as expected"

# 用Tokenizer把文本转换成模型能识别的序列
txt_sequence = tokenize.texts_to_sequences([txt])

# 对序列做padding(这里的max_len必须和你训练时设置的完全一样,别改数值)
from tensorflow.keras.preprocessing.sequence import pad_sequences
max_len = 200  # 替换成你训练时实际设置的最大序列长度
txt_padded = pad_sequences(txt_sequence, maxlen=max_len)

第四步:执行预测并解析结果

现在就可以用加载好的模型做预测,然后把模型输出的概率转换成你能看懂的标签:

# 运行预测,得到每个分类标签的概率分布
predictions = model.predict(txt_padded)

# 这里替换成你训练时实际用的分类标签列表,比如Stack Overflow的技术标签
labels = ['angular', 'python', 'javascript', 'java', 'react']

# 找到概率最高的标签
predicted_label = labels[predictions.argmax(axis=1)[0]]

print(f"这个帖子预测的标签是:{predicted_label}")
print(f"各标签的预测概率:{dict(zip(labels, predictions[0]))}")

关键注意事项

  • 所有预处理参数(max_words、max_len、是否做小写转换等)必须和训练阶段完全一致,不然模型会报错或者输出错误结果。
  • 如果训练时对文本做了额外处理(比如去除特殊字符、停用词),预测时也要对输入文本执行同样的操作。

内容的提问来源于stack exchange,提问作者user9550188

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:32:30