ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

OpenVINO 跨平台 AI 推理部署完整指南

OpenVINO 跨平台 AI 推理部署完整指南 OpenVINO 跨平台 AI 推理部署完整指南【免费下载链接】openvinoOpenVINO™ is an open source toolkit for optimizing and deploying AI inference项目地址: https://gitcode.com/GitHub_Trending/op/openvino昨天你训练完一个 PyTorch 模型要在办公电脑、家用服务器和边缘盒子上跑起来原生框架运行时仅加载就要吃掉 2GB 内存。OpenVINO 是解决这件事的开源 AI 推理部署工具包Windows、macOS、Linux 都能装把模型编译成它自己的 IR 中间格式然后在 CPU、GPU、NPU 上跑推理。 快速上手三步完成第一次 AI 推理部署安装不需要源码编译。三种系统都是同一条 pip 命令pip install -U openvinomacOS 上也可以用brew install openvinoWindows 和 Linux 直接 pip 即可。装完立刻验证版本避免装错环境python -c import openvino as ov; print(ov.__version__)仓库里自带可运行的示例不必自己写代码。进入 samples/python/hello_classification/hello_classification.py对着一张图片和任意 IR/ONNX 模型执行python samples/python/hello_classification/hello_classification.py resnet50.xml cat.jpg CPU终端会按概率从高到低打印 Top 10 分类结果。到此为止你的第一次推理已经跑完了。C 侧有对应的 samples/cpp/hello_classification/main.cpp逻辑完全一致。 核心功能实战AI 推理部署中你会真正用到的场景图片分类四行代码跑完一次推理示例的核心流程只有四步全部在 samples/python/hello_classification/hello_classification.py 中编译到目标设备后同步执行一次推理log.info(Loading the model to the plugin) compiled_model core.compile_model(model, device_name) log.info(Starting inference in synchronous mode) results compiled_model.infer_new_request({0: input_tensor})device_name就是命令行传进来的第三个参数。模型读一次、编译一次之后可以反复推理这是部署侧的基本用法。转换 PyTorch、ONNX 模型为 IR 格式不想改训练代码时直接在线转换。PyTorch 模型用ov.convert_model(model, example_input(example,))传一个示例输入即可框架和算子映射都帮你处理了。更省事的是仓库里的ovc命令行工具位于 tools/ovc/ovc model.onnx -o model.xml -ov转出来的.xml.bin就是 OpenVINO IR脱离原始框架也能加载。CPU / GPU / NPU 一键切换同一份编译代码换个设备字符串就行core.compile_model(model, GPU)。你的模型在 Intel 独显、核显或 NPU 上的表现差异只需要重跑一次 benchmark 就能量化。仓库里的benchmark_app工具就是干这个的官方文档里的调用形式是benchmark_app -m model -d device。Physical AI机器人策略部署也有官方路径OpenVINO 有一条面向物理 AI 的线文档在 docs/articles_en/physical-ai/。推理结果可以接到 Rerun 可视化里观察策略运行状态做具身智能、机器狗、机械臂控制的同学这条线值得留意。⚙️ 幕后机制PrePostProcessor 到底在解决什么问题你的模型从 PyTorch 出来时张量是 NHWC、u8 格式模型期望的却是 NCHW、f32。手工写 resize、转置、类型转换又容易出错。OpenVINO 的PrePostProcessor把这些差异声明式地挂到模型输入上编译时统一处理。下面的代码取自 samples/python/hello_classification/hello_classification.py声明了输入张量布局并自动插入线性 resizeppp ov.preprocess.PrePostProcessor(model) _, h, w, _ input_tensor.shape ppp.input().tensor() \ .set_shape(input_tensor.shape) \ .set_element_type(ov.Type.u8) \ .set_layout(ov.Layout(NHWC)) ppp.input().preprocess().resize(ov.preprocess.ResizeAlgorithm.RESIZE_LINEAR) ppp.input().model().set_layout(ov.Layout(NCHW)) model ppp.build()ppp.build()返回一个包装过的模型预处理步骤随编译固化推理时不再需要你操心数据格式。 进阶与定制三条往下走的路从源码构建运行时。需要裁剪插件、交叉编译或打自己的 wheel 时走 docs/dev/build_linux.md流程是装依赖、cmake、makesudo ./install_build_dependencies.sh mkdir build cd build cmake -DCMAKE_BUILD_TYPERelease .. cmake --build . --parallel同一份文档里还有 IA32 工具链和自定义编译选项的说明选项清单在 docs/dev/cmake_options_for_custom_compilation.md。为新框架写前端。导入 PyTorch、ONNX、TensorFlow 的代码都在 src/frontends/ 下每个框架一个子目录。要支持一个新框架照 onnx 子目录的结构实现算子翻译器是最值得动手的扩展方向。注册自定义算子与设备插件。核心算子定义在 src/core/设备插件CPU、GPU、NPU 实现在 src/plugins/。你的模型里有 OpenVINO 不认识的算子时在这里注册一个自定义 op 就能把整条链路补上。⚠️ 避坑提示编译与部署的四个高频问题源码构建对版本敏感CMake 需 3.26 以上GCC 7.5 以上Python 3.9~3.12。版本不够时 cmake 阶段的报错往往很隐晦先核对版本。Linux 上如果 source 过 oneAPI 的setvars.sh编译前先反激活官方构建文档明确提示这会导致构建失败。hello_classification示例只支持单输入单输出的模型多输入模型要自己写 request 逻辑别在示例上硬改。选 GPU 设备前必须装好 Intel Graphics Compute RuntimeOpenCL 驱动否则GPU直接报错。内存有限的机器上把--parallel限到 8 以下防止编译把系统拖死。到这里安装、跑示例、转模型这三件事你都做完了。接下来的事不靠教程靠你手里真实的模型。git clone https://gitcode.com/GitHub_Trending/op/openvino cd openvino下一步建议挑一个自己训练的模型用ovc转成 IR再用benchmark_app对比一下 CPU 和 GPU 的实测延迟数字会比你想象的更有参考价值。【免费下载链接】openvinoOpenVINO™ is an open source toolkit for optimizing and deploying AI inference项目地址: https://gitcode.com/GitHub_Trending/op/openvino创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表