分享 | 将Pytorch模型部署到Movidius神经计算棒

爱分享的 OpenVINO 中文社区

内 容 来 源 | 郭春旭
排 版 | 卢书晴
原文链接:https://mc.dfrobot.com.cn/thread-306570-1-1.html

内容提要

 这篇文章将是从笔者一个小白的视角出发,演示如何将自己训练的网络模型使用OpenVINO的优化器进行优化,并将其部署到神经计算棒进行推理加速的过程。

正文部分

1.将Pytorch模型转化为ONNX格式

 我们可以从脚本中保存网络的结构开始看,Pytorch保存模型分为两种:① 只保留模型参数
 只保留参数[/align]torch.save(model.state_dict(), '\parameter.pkl')

②保存完整的模型

保存完整的模型torch.save(model, '\model.pkl')

我们需要完整的网络信息用于转化,所以需要在此选择第二种“保存完整的模型”方式。

之后,我们需要读取这个 pkl 文件并将其转化为 onnx 格式,我们需要定义批处理大小、输入数据尺寸、使用设备等信息,再定义好文件输入与输出的路径即可。

2.使用模型优化器进行优化

OpenVINO 的推理引擎支持的文件为中间表示文件 IR ,需要调用 OpenVINO 工具包中的mo.py 进行优化,如果使用 Tensorflow 等直接支持的框架则可以直接从框架模型转化为 IR ,而如果是像本文中提到的 Pytorch 的模型,其需先转化到 ONNX 文件再进行间接的IR转化,最终得到的IR文件将由两个部分组成:

① .xml 描述网络的拓扑结构
② .bin 网络的权重与偏置的二进制数据

先在开始前设置好 OpenVINO 的环境变量。

接着,我们需要切换到模型优化器的目录下,这个目录下保存了用于不同框架的模型优化器,例如 mo_caffe.py, mo_tf.py 等文件。

当然,如果安装时没有安装在默认目录的话,需要重新调整前半段的路径位置。

cd C:\Program Files
(x86)\IntelSWTools\openvino\deployment_tools\model_optimizer

模型优化后的文件会自动保存在【…\openvino\deployment_tools\model_optimizer\example.xml】目录下,我们需要记下这个位置之后在部署时使用。

3.将优化后的模型部署到神经网络计算棒上

笔者在比赛中的项目是射频信号图片的分类工作,需要用到 classification_sample.py ,在 model 参数中输入上一步生成的 xml 文件的路径,在 input 参数中输入需要进行分类的图片路径,我们也可以通过 device 参数选择运行的设备,如果需要使用神经计算棒进行加速的话,我们在这一栏选择 MYRIAD 即可。

由于 OpenVINO 在顶层规划上就很好地采用了一套 API 用于不同设备的设计,我们在实际使用的时候输入 xml 的拓扑结构描述文件与需要进行加速的设备就能方便地使用了,这也是其一大亮点。

"C:\Program Files (x86)\IntelSWTools\openvino_2020.3.194\deployment_tools\inference_engine\samples\python\classification_sample\classification_sample.py" --model 【xml_path】 --device HETERO:MYRIAD,CPU,GPU --input 【img_path】

从输出我们可以看到神经计算棒顺利的完成了这个四分类问题的推理,尽管经过了模型的转化和优化,但是推理的正确率仍然是很高的,神经计算棒的推理速度也非常快。当然,这只是一个 getting start 的一个简单示例,在实际生产环境中还是要使用专用的 benchmark_app 工具。

END

如果你还在为自己的模型而发愁,不妨使用 OpenVINO 。如果你对建模感兴趣,不妨学学 OpenVINO 。更多精彩内容请关注 OpenVINO 中文社区。从小白到大佬的进阶之路,我们一路陪伴。喜欢的话,记得关注哟~

关注我们,让开发变得更有趣

分享 | 将Pytorch模型部署到Movidius神经计算棒相关推荐

  1. TensorFlow与PyTorch模型部署性能比较

    TensorFlow与PyTorch模型部署性能比较 前言 2022了,选 PyTorch 还是 TensorFlow?之前有一种说法:TensorFlow 适合业界,PyTorch 适合学界.这种说 ...

  2. 基于C++的PyTorch模型部署

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 引言 PyTorch作为一款端到端的深度学习框架,在1.0版本之后 ...

  3. 如何将pytorch模型部署到安卓

    如何将pytorch模型部署到安卓上 这篇文章演示如何将训练好的pytorch模型部署到安卓设备上.我也是刚开始学安卓,代码写的简单. 环境: pytorch版本:1.10.0 模型转化 pytorc ...

  4. PyTorch模型部署:pth转onnx跨框架部署详解+代码

    文章目录 引言 基础概念 onnx:跨框架的模型表达标准 onnxruntime:部署模型的推理引擎 示例代码 0)安装onnx和onnxruntime 1)pytorch模型转onnx模型 2)on ...

  5. pyTorch模型部署--高并发web服务c++移动端ncnn

    文章目录 1 综述 2 以python web服务的形式进行部署 3 c++调用方式进行部署 3.1 torchscript 3.1.1 模型转换 3.1.1.1 torch.jit.trace 3. ...

  6. pytorch模型部署

    1. C++调用python训练的pytorch模型(一)--makefile编写基础 https://blog.csdn.net/xiake001/article/details/84838249 ...

  7. 春节小游戏之图片分类(Pytorch模型部署)

    文章目录 前言 环境 项目结构 前端 图片上传 结果显示 后端 模型部署 路由 业务代码 总结 本博文优先在掘金社区发布! 前言 啥也不说了,来先看效果图 本来我是打算去把昨天在实验平台训练的模型拿到 ...

  8. movidius 神经计算棒 ncsdk windows 平台 支持 配置 教程

    概述:movidius ncs的ncsdk目前官方还不支持windows,但是inter好像发布了openvino,这个里面是包含ncsdk的好像是支持windows的.现在不讲openvino,讲n ...

  9. Movidius神经计算棒3-完整配置开发环境

    上面是我的微信和QQ群,欢迎新朋友的加入. cd ncsdk/make install 这里有个题外话,英特尔这个玩意搞得不太友好,很多软件都有版本限制,高了或或者低了都要不得 这倒也没啥事,但是有个 ...

  10. Sanic框架下部署Pytorch模型

    前言 本文针对业余范围的Pytorch模型部署,类似各位想把自己开发的深度学习模型上线web端demo等等. 大家比较熟悉的Python框架主要有flask,使用flask部署上线深度学习模型过程简单 ...

最新文章

  1. 【洛谷搜索专题Python和C++解】DFS和BFS经典题目(陆续补充)
  2. 【Linux】一步一步学Linux——umask命令(111)
  3. HTML5 API详解(15):History 不刷新也可以实现网页跳转
  4. 在React的render方法中使用箭头函数
  5. springboot做网站_Github点赞接近10万的SpringBoot学习教程+实战推荐!牛批!
  6. NOI2018 Day1 归程(Kruskal重构树)
  7. Problem D. Country Meow 2018ICPC南京
  8. 使用内容脚本将代码插入页面上下文
  9. Adobe Audition 基本使用
  10. 问答题库(路由与交换){简答版}
  11. 傲腾内存 可以用ghost系统_windows xp sp3安装包用傲腾技术打造专业修图电脑配置...
  12. aka名字_中国新说唱:马来王子尤长靖,尤长靖自编AKA名字
  13. linux安装frps服务,ubuntu搭建frps服务
  14. HTML5APP商业开发实战教程——基于WeX5可视化开发平台
  15. php依赖注入 简书,PHP 依赖注入容器
  16. 全国计算机二级考试报名入口河南,计算机等级考试报名入口河南(英语四级报名官网入口)...
  17. 【附源码】计算机毕业设计JAVA九宫格日志网站
  18. Mac卸载程序清除残留文件
  19. 麻省理工的服务器位置,麻省理工学院地理位置在哪里?学长告诉你
  20. CCF-201709-2(公共钥匙盒)

热门文章

  1. [1125]AES加密报错:Illegal key size or default parameters
  2. 关于kinfu的配置问题,pcl_kinfu_largeScale
  3. python程序格式框架的描述错误的是_关于 Python 程序格式框架的描述,以下选项中错误的是(       )...
  4. 多智时代,人工智能发展历史的时间表
  5. android h5 唤醒微信,H5唤醒App,用通用连接解决在微信打开APP的问题
  6. mac显示隐藏文件夹
  7. 计算机考试界面没有验证码,win10系统下网页验证码显示不了的两种解决方法
  8. js return加分号_JS代码中加分号和不加分号的区别
  9. About all the awsome websites
  10. Packet Tracer 和 Wirshark 抓取数据包