当前位置: 首页 > news >正文

做创意小视频的网站浙江天奥建设集团网站

做创意小视频的网站,浙江天奥建设集团网站,建立个人网站流程,上海网站建设 seo开始以为会很困难,但是其实非常方便,下边分两步走:1. pytorch模型转onnx;2. 使用onnx进行inference 0. 准备工作 0.1 安装onnx 安装onnx和onnxruntime,onnx貌似是个环境。。倒是没有直接使用,onnxruntim…

开始以为会很困难,但是其实非常方便,下边分两步走:1. pytorch模型转onnx;2. 使用onnx进行inference

0. 准备工作

0.1 安装onnx

安装onnx和onnxruntime,onnx貌似是个环境。。倒是没有直接使用,onnxruntime是一个onnx的架构,方便部署使用的

CPU版本:

pip install onnx -i http://pypi.douban.com/simple/  --trusted-host pypi.douban.com
pip install onnxruntime -i http://pypi.douban.com/simple/  --trusted-host pypi.douban.com

GPU版本:

pip install onnx -i http://pypi.douban.com/simple/  --trusted-host pypi.douban.com
pip install onnxruntime-gpu  -i http://pypi.douban.com/simple/  --trusted-host pypi.douban.com

1. pytorch模型转ONNX

### 导出onnx模型
torch.onnx.export(self.network, {'input dict': input dict}, 'home3/medcog/pbliu/test_onnx.onnx')
print('output a onnx model!!!!!!')

坑1:dummy input那里的那个dict:{'input_dict': input_dict},'input_dict'是我network中forward中的参数名字,后边的input_dict是实际的数据,batch size=1。

坑2:只是为了用的话,export三个参数就够了:网络,虚拟输入(bs=1),保存路径。这时候输入的名字会按照顺序被替换掉"onnx::Cast_*",所以你把输入对回去就可以了,我的数据格式修改如下。(并且onnx只接受numpy格式)

onnx_dict = {}
key_prefix = 'onnx::Cast__{}'
onnx_idx = 1
for idx, (k,v) in enumerate(input_dict.items()):if k.startswith('input'):onnx_dict[key_prefix.format(onnx_idx)] = v.numpy()onnx_idx += 1

2. 如何用onnx进行inference

import onnxruntime as rt  
import numpy as np  # 加载 ONNX 模型  
sess = rt.InferenceSession('my_model.onnx', providers=['TensorrtExecutionProvider', 'CUDAExecutionProvider', 'CPUExecutionProvider'])  # 准备好数据onnx_dict# 调用模型进行推理  
result = sess.run(None, onnx_dict)

坑3:这里的sess.run中的None应该类似于tf中希望得到的结果,我这里没有命名,所以就写None了,会默认返回你之前pytorch输出的变量

坑4:sess.run使用的数据onnx_dict就是'onnx::Cast_*'和np array的键值对儿了,你之前在pytorch中定义的输入格式都不重要了,不管你是dict还是啥。

坑5. onnxruntime gpu的时候可能会报错,一个可能是cuda版本不适配的问题,直接在虚拟环境中安装对应版本的cuda就可以

conda install cudatoolkit=10.1
# 版本对照参考https://onnxruntime.ai/docs/execution-providers/CUDA-ExecutionProvider.html

一些其他tips:

1. 实操时候遇到一个极蠢的问题,onnx比pytorch慢很多,后来发现是我把初始化写到运行代码中了,每次测试一个数据都会重新初始化一遍。

http://www.yayakq.cn/news/222987/

相关文章:

  • 顺义建设网站wordpress网站管理
  • 电商需要投资吗聊城关键词优化推广
  • 马鞍山市 网站建设wordpress试玩app
  • 大型网站开发织梦网站怎么修改内容
  • 义乌网站建设电话title 镇江网站建设
  • php网站开发机试题目wordpress 主题木马
  • 怎么做网站或APP长沙做官网的公司
  • 做网站费用多少钱wordpress后台 菜单
  • 两个人能用的一个公司做网站吗百度建站
  • 做办公用品网站工作计划模板下载网站
  • 网站备案成功后该怎么做苏州保洁公司收费价格表
  • 阿里云网站空间购买宁波seo外包公司
  • 国内高端网站定制中国建设银行快捷付授权网站
  • 工作室做网站流程门户网站建设工作讲话
  • 深圳趣网站建设dede学校网站
  • 全国最好的加盟网站创建主题资源网站的学习_你觉得在主题资源建设方面有哪些收获?
  • 南宁网站建设优化服务凡客诚品倒闭了
  • 定制型网站 成功案例网站建设的扩展阶段包括
  • 赣州做网站j做互助盘网站多少钱
  • 企业建设网站的价值自己做国外网站买衣服
  • 模板网站修改教程视频安卓app下载
  • 如何做好网站建设前期网站规划什么语言做网站快
  • 做茶叶网站公司北京市保障房建设投资中心网站
  • 深圳深圳龙岗网站建设公司广州网站建设怎么做
  • 网站建设制作费用梅州市五华县建设银行网站
  • 高等院校网站建设方案四川华泰建设集团网站
  • 网站建设缺乏个性cms网站后台上传图片提示图片类型错误但是类型是正确的
  • 拜年图片制作网站设计优化方案
  • 成都维尼网络 网站建设网络培训心得体会5篇
  • 个人网站建立步骤宜城营销型网站套餐