Intention/ernie/load_model.py

28 lines
1.1 KiB
Python

import paddle
import numpy as np
from paddlenlp.transformers import ErnieTokenizer
import paddle.nn.functional as F # 用于 Softmax
# 加载模型和tokenizer
model = paddle.jit.load("trained_model_static") # 加载保存的静态图模型
tokenizer = ErnieTokenizer.from_pretrained("E:/workingSpace/PycharmProjects/Intention/models/ernie-3.0-tiny-base-v2-zh")
# 创建输入示例
text = "今天送变电二公司有?"
inputs = tokenizer(text, max_length=256, truncation=True, padding='max_length', return_tensors="pd")
# 将输入数据转化为 Paddle tensor 格式
input_ids = paddle.to_tensor(inputs["input_ids"])
# 进行推理
model.eval() # 确保模型在推理模式
logits = model(input_ids) # 模型推理得到logits
# 使用 Softmax 转换 logits 为概率
probabilities = F.softmax(logits, axis=1) # 归一化 logits 得到概率分布
# 获取最大概率的标签
max_prob_idx = np.argmax(probabilities.numpy(), axis=1)
max_prob_value = np.max(probabilities.numpy(), axis=1)
# 输出预测结果
print(f"Predicted label: {max_prob_idx}")
print(f"Predicted label: {max_prob_value}")