老杨说话的地方
  • 首页
  • 关于老杨
  • 博客时间
  • 文章分类
    • 人生感悟
    • 信息技术
    • 往事随风
    • 情感随笔
    • 文学创作
    • 生活记录
    • 评论杂谈
    • 人工智能
  • 留言本
我是老杨
张驰有度 宠辱不惊
  1. 首页
  2. 人工智能
  3. 正文

加载onnx模型进行推理

2023年07月05日 4257点热度 4人点赞 0条评论

onnx的模型加载,需要用到onnx runtime。

推理代码:

import torch
import onnxruntime as rt
from transformers import LlamaTokenizer

def generate_prompt(text):
    return f"""Below is an instruction that describes a task. Write a response that appropriately completes the request.

### Instruction:
{text}

### Response:"""

tokenizer = LlamaTokenizer.from_pretrained("minlik/chinese-llama-7b-merged")
text = '介绍一下北京'
prompt = generate_prompt(text)
input = tokenizer.encode(prompt, return_tensors='pt')
x = input.numpy()
sess = rt.InferenceSession('your_model_path_and_name.onnx')
max_words=2048
for i in range(0,max_words-1):
    with torch.no_grad():
        outputs = sess.run(None, {"input": x})
        predictions = outputs[0] #将output中的第一个元素取出来,就是预测的字的概率,第二个元素是past,这里我们只需要第一个元素。
        predictions=torch.from_numpy(predictions)
    predicted_index = torch.argmax(predictions[0, -1, :]).item()#这里最后一个tensor,就是下一个字。
    predicted_text = tokenizer.decode([predicted_index])
    if predicted_text == '</s>':
        break;
    else:
        print(predicted_text)
    prompt=prompt+predicted_text
    input = tokenizer.encode(prompt, return_tensors='pt')
    x = input.numpy()

需要注意:

  1. tokenizer后的文本,返回的是torch张量,所以,需要先转换成numpy。
  2. sess.run(None, {"input": x})中的input,对应于转换时自定义的名字。
  3. predictions = outputs[0],这里是把输出的结果第一个元素取出来,第一个元素就是所有预测的下一个字的概率,最后一个张量就是要预测的字。predicted_index = torch.argmax(predictions[0, -1, :]).item()就是对最后一个元素进行softmax,得到这个字在词典中的id。使用tokenizer的decode方法后就得到了真正的预测的字。
  4. 预测完一个字后,把这个字和前面的内容,都合并在一起,再继续预测下一个字,直到遇到结束符号</s>。
标签: import llamatokenizer onnx
最后更新:2023年07月05日

老杨

博士,非博学之士;讲师,讲所学所知。糊涂半生,虚度半世,唯愿平淡快乐,度过此生。

点赞
guest

guest

0 评论

老杨

博士,非博学之士;讲师,讲所学所知。糊涂半生,虚度半世,唯愿平淡快乐,度过此生。

搜索
最新 热点 随机
最新 热点 随机
别成为AI的奴隶 给阿嬷的情书 信息焦虑综合症 PUA 人的悲喜并不相通 RIME输入法万象拼音输入方案更改自定义短语文件的方法 禁用RIME输入法万象拼音输入方案表情的办法 幸福者避让原则 WordPress插件WP-Editor.md代码语法无法高亮问题的解决方案 RIME的自动化配置与同步
晴迷星途01上电视 祖宗十九代与相声的困惑 同学的51工具网以及微博客 我在大学那几年(三) 媒婆 她们何错之有? 推荐网络同步工具快盘 光棍节快乐 饺子 这些天发生的这些事儿
最新评论
  • 信息焦虑综合症上的shanshan先从减少手机使用时间开始。
  • 第二青春计划失败上的shanshan所以必须得自己下定决心痛改前非,而不是跟自己讲条件。
  • 第二青春计划失败上的老杨这种平台挺多的,但是应该没啥用,能有啥情绪价值比躺着刷手机更好呢?
  • 春秋航空让人长见识上的老杨已经遇到了,额外支付了170,托运登机行李,还不是托运行李。
  • PUA上的老杨那很好,恭喜你
  • 信息焦虑综合症上的老杨可以尝试改变。
  • 别成为AI的奴隶上的老杨现在很多人离开AI已经不知道怎么工作了。
  • 第二青春计划失败上的shanshan建议开发一个适合P人的工作生活计划平台,完不成没什么惩罚、但是完成了有…
  • 春秋航空让人长见识上的shanshan还有部分机型里20寸箱子应该上不了机,且没有免费行李托运额度。托运费超…
  • 人的悲喜并不相通上的shanshan这个世界精致利己主义者太多啦!
文章分类
关注公众号

COPYRIGHT © 2026 老杨说话的地方 版权所有

THEME KRATOS YANG Modified BY 老杨

鲁ICP备17014997号-4

鲁公网安备 37021302000754号