自己做的网站显示iis7,给公司做网站和公众号需要多少钱,网站APP注册做任务,allintitle:湛江网站建设 seo1 下载安装
先在anaconda中创建一个虚拟环境#xff0c;该环境的python版本为3.7#xff0c;之所以使用python3.7#xff0c;是因为我在3.9上安装过程中出现不少bug#xff0c;后面新建了一个3.7的环境才解决#xff0c;我不知道是否由于和我已有环境中某些包不兼容…1 下载安装
先在anaconda中创建一个虚拟环境该环境的python版本为3.7之所以使用python3.7是因为我在3.9上安装过程中出现不少bug后面新建了一个3.7的环境才解决我不知道是否由于和我已有环境中某些包不兼容还是python3.9版本的问题总是折腾了很久都没解决最后新建了一个虚拟环境。 地址 实际上就是下面这条命令
pip install openvino-dev[pytorch]2023.0.1这里可以使用清华镜像或者阿里镜像
接下来使用下面这串代码测试是否安装成功如果没有报错说明OpenVINO安装成功
python -c from openvino.runtime import Core2 查看可用设备
下面是查看本地可用设备
from openvino.runtime import Core
core Core()
devices core.available_devices
for device in devices:device_name core.get_property(device, FULL_DEVICE_NAME)print(f{device}: {device_name})输出
CPU: Intel(R) Core(TM) i7-10870H CPU 2.20GHz
GPU.0: Intel(R) UHD Graphics (iGPU)
GPU.1: NVIDIA GeForce RTX 3060 Laptop GPU (dGPU)这里有两个GPU一个是集显一个是独显。
3 模型的中间表示
在OpenVINO的使用过程中经常可以听见一个词叫IR它的全程叫Intermediate Representation即模型的中间表示主要包括.xml文件和.bin文件前者用于描述网络拓扑即网络结构后者则是包含了网络中的权重和偏置的二进制数据文件IR是OpenVINO中模型的专有格式。 由于模型的部署环境通常不会安装PyTorch、TensorFlow这些深度学习框架因此在训练完成之后一般是将模型导出为onnx文件这样可以摆脱对框架和模型所属类的依赖。ONNX定义了一组与环境和平台无关的标准格式为AI模型的互操作性提供了基础使AI模型可以在不同框架和环境下交互使用。硬件和软件厂商可以基于ONNX标准优化模型性能让所有兼容ONNX标准的框架受益简单来说ONNX就是模型转换的中间人。 在一些比较老的教程中是拿到onnx文件后将其转化为IR然后OpenVINO再读取IR文件并将其编译到硬件上面进行推理这是之前OpenVINO推荐的部署流程代码如下只显示转化成IR的代码
from openvino.tools import mo
from openvino.runtime import serialize # pycharm可能会提示找不到serialize但实际能执行IDE有bugov_model mo.convert_model(onnx_path) # onnx_path是onnx文件的路径ov_model是OpenVINO模型
serialize(ov_model, xml_path) # xml_path是IR中xml文件的路径serialize方法不但会生成xml文件还会在相同目录下生成bin文件mo.convert_model可以完成模型的压缩、剪枝、前处理、设置输入等操作这个能力很加分但本文的目的是了解OpenVINO的大致使用流程关于模型的压缩剪枝等操作暂时不展开可以看官方手册详细了解mo.conver_model的功能链接
如果在训练环境中安装了OpenVINO2023那么可以在训练结束后跳过ONNX直接将模型转化为OpenVINO的IR代码如下
from openvino.tools import mo
from openvino.runtime import serializeov_model mo.convert_model(net) # net是PyTorch模型ov_model是OpenVINO模型
serialize(ov_model, xml_path)注意将PyTorch模型直接转换成OpenVINO模型这项功能仅仅是OpenVINO 2023.0 release才开始有的在OpenVINO 2022之前都不支持另外因为这项功能比较新因此并不是所有模型都能这么转假如转换失败还能老老实实先转ONNX再转IR。
4 模型推理
得到IR之后IR既可以在训练环境直接右PyTorch模型得到也可以在部署环境中通过ONNX文件得到将其读取到OpenVINO模型然后编译到指定设备就可以进行推理了代码如下省略了输入数据预处理的操作比如图像缩放、数据压缩到0-1等
from openvino.runtime import Core
# 创建推理核
core Core()
# 读取IR文件
ov_model core.read_model(modelir_path) # ir_path是IR中xml文件的路径
# 编译到指定设备
compiled_model core.compile_model(ov_model, CPU) # CPU可以改成GPU.0、GPU.1或AUTO
# res是推理结果
res compiled_model(input_tensor)[0] 设备除了CPU之外还可以是GPU.0或GPU.1也可以让系统自动选择AUTO看自己的电脑上有什么设备可以使用core.available_devices详见第2节。
上面的流程是标准流程实际上core.read_model可以直接读onnx文件这使得我们可以跳过IR那一步代码如下
from openvino.runtime import Core
core Core()
# 读取onnx文件
ov_model core.read_model(modelonnx_path) # onnx_path是onnx文件的路径
# 编译到指定设备
compiled_model core.compile_model(ov_model, CPU) # 除了CPU还可以
# res是推理结果
res compiled_model(input_tensor)[0]其实也可以使用mo.convert_model将onnx模型转成OpenVINO模型后编译到指定设备但这需要部署环境中有OpenVINO开发工具即openvino.tools而一般情况下部署环境没这个只有runtime即openvino.runtime所以这种方式用的不多。
5 总结
本文介绍了如何使用OpenVINO部署PyTorch模型主要内容可以用下面几幅图表示 好了至此当我们得到一个PyTorch模型后已经可以将其部署到OpenVINO上去了当然由于篇幅所限还有很多细节没有展开我们今天先把Pipeline打通日后会具体介绍。 https://docs.openvino.ai/2023.0/notebooks/102-pytorch-to-openvino-with-output.html https://docs.openvino.ai/2023.0/notebooks/102-pytorch-onnx-to-openvino-with-output.html https://docs.openvino.ai/2023.0/openvino_docs_model_processing_introduction.html https://mp.weixin.qq.com/s?__bizMzU2NjU3OTc5NAmid2247560125idx2sn001988bca941a9404ac8fe7a351b514dchksmfca9ec80cbde659689922250b3138e752cfccf50fde18f07016b7673bf1289bb8bd25bb4f636scene27