分享 | 将Pytorch模型部署到Movidius神经计算棒
分享 | 将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 中文社区。从小白到大佬的进阶之路,我们一路陪伴。喜欢的话,记得关注哟~
关注我们,让开发变得更有趣
TensorFlow与PyTorch模型部署性能比较 前言 2022了,选 PyTorch 还是 TensorFlow?之前有一种说法:TensorFlow 适合业界,PyTorch 适合学界.这种说 ... 点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 引言 PyTorch作为一款端到端的深度学习框架,在1.0版本之后 ... 如何将pytorch模型部署到安卓上 这篇文章演示如何将训练好的pytorch模型部署到安卓设备上.我也是刚开始学安卓,代码写的简单. 环境: pytorch版本:1.10.0 模型转化 pytorc ... 文章目录 引言 基础概念 onnx:跨框架的模型表达标准 onnxruntime:部署模型的推理引擎 示例代码 0)安装onnx和onnxruntime 1)pytorch模型转onnx模型 2)on ... 文章目录 1 综述 2 以python web服务的形式进行部署 3 c++调用方式进行部署 3.1 torchscript 3.1.1 模型转换 3.1.1.1 torch.jit.trace 3. ... 1. C++调用python训练的pytorch模型(一)--makefile编写基础 https://blog.csdn.net/xiake001/article/details/84838249 ... 文章目录 前言 环境 项目结构 前端 图片上传 结果显示 后端 模型部署 路由 业务代码 总结 本博文优先在掘金社区发布! 前言 啥也不说了,来先看效果图 本来我是打算去把昨天在实验平台训练的模型拿到 ... 概述:movidius ncs的ncsdk目前官方还不支持windows,但是inter好像发布了openvino,这个里面是包含ncsdk的好像是支持windows的.现在不讲openvino,讲n ... 上面是我的微信和QQ群,欢迎新朋友的加入. cd ncsdk/make install 这里有个题外话,英特尔这个玩意搞得不太友好,很多软件都有版本限制,高了或或者低了都要不得 这倒也没啥事,但是有个 ... 前言 本文针对业余范围的Pytorch模型部署,类似各位想把自己开发的深度学习模型上线web端demo等等. 大家比较熟悉的Python框架主要有flask,使用flask部署上线深度学习模型过程简单 ...分享 | 将Pytorch模型部署到Movidius神经计算棒相关推荐
最新文章
热门文章