一.简单说明
openvino是Intel公司为了加速模型推理而推出的一款工具,对于一些Intel公司的CPU和GPU上运行模型有不错的加速效果。
二.调用库推理
如果要对pycharm导出的pt模型部署到Intel公司的芯片上运行可以使用openvino将模型转化为xml+bin格式的文件再用openvino第三方库来调用推理。
三.主要讲解openvino量化pytoch模型,然后使用openvino调用推理:
1.pycharm中安装openvino
可以直接切换到python环境,运行pip install openvino,推荐最新版,老版本经常改动,很多方法经常变动。
本篇文章以2025.1.0为例来说明。
2.pt文件转onnx
此篇文章不做说明,一般是调用torch.onnx.export此方法转,会生成onnx文件。
3.onnx文件转xml+bin
下面会附上源码,只需要简单调用openvino.runtime里面的Core和serialize即可,注意不要使用from openvino.inference_engine import IECore这种,否则很可能报错。具体原因不想深究,总之我的量化和推理过程不需要用到openvino.inference_engine模块。
代码如下:
from openvino.runtime import Core
from openvino.runtime import serialize
ie = Core()
onnx_model_path = r"../_fp32.onnx"
model_onnx = ie.read_model(model=onnx_model_path)
# compiled_model_onnx = ie.compile_model(model=model_onnx, device_name="CPU")
serialize(model=model_onnx, xml_path="model.xml", bin_path="model.bin",
version="UNSPECIFIED")
4.如果需要量化,对xml+bin量化
下面的input_data 的取值范围和模型形状需要改为你自己的数据的对应范围和形状,前处理和推理时一致即可。完成量化后直接就是int8的模型,具体能不能在CPU上运行需要对应机器的CPU支持VNNI指令集。需要用到nncf,直接pip install nncf即可。
import numpy as np
<

最低0.47元/天 解锁文章
1151

被折叠的 条评论
为什么被折叠?



