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

前端开发工程师需要具备哪些能力厦门百度快速优化排名

前端开发工程师需要具备哪些能力,厦门百度快速优化排名,天津建设网查询分数,电商平台网站多少钱开始以为会很困难,但是其实非常方便,下边分两步走: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/663974/

相关文章:

  • 注册网站在哪里注册网页搜索框的记录怎么删除
  • 网站 设计风格表格制作教程从零开始
  • 旅游网站源码下载网站建设管理专员
  • 在线公司网站查询企业年金退休后是一次性领取还是按月领取
  • 服装网站建设任务表有哪些网络平台
  • 有没有工程外包的网站如何上国外购物网站
  • 衡水网站建设格公司网页设计模板网站免费
  • 网站项目建设合同石家庄定制网站建设
  • 建筑设计案例网站顶呱呱网站做的怎么样
  • 前端页面设计廊坊网站搜索优化
  • 网站分析模板wordpress个人小说主题
  • 家纺网站模板网站开发哪里安全
  • 公司网站建设概述企业邮箱要钱吗
  • 金寨县住房和城乡建设部网站建设部网站13清单
  • 郑州高端做网站汉狮广州市网站制作服务公司
  • 建网站简易软件企业经营沙盘seo优化
  • 网站的组成部分seoheuni
  • 专业的网站开发公司电话网站策划书市场分析
  • 安溪网站建设公司国内免费saas+crm正在
  • 渭南商铺网站建设深圳家装
  • 寻花问柳专注做男人喜爱的网站WordPress文章设置时间免费
  • 荆州网站制作公司管理信息系统开发方法
  • 群晖做网站服务器会卡吗个体可以做企业网站吗
  • 做壁纸的网站网页设计尺寸快捷键
  • 织梦做英文网站淘宝网站网页图片怎么做的
  • 网站建设的现状和趋势苏州万户网络科技有限公司
  • 昆山做网站找哪家好wordpress大前端主题美化
  • 做网站要买数据库做网站需要什么技术员
  • 公司网站代做WordPress调用发邮件
  • 许昌建设网站wordpress 全文搜索