拓冰建站拓冰建站
首页 / 资讯中心 / 正文

从 PyTorch 模型到多设备本地推理:OpenVINO 快速上手指南

从 PyTorch 模型到多设备本地推理OpenVINO 快速上手指南【免费下载链接】openvinoOpenVINO™ is an open source toolkit for optimizing and deploying AI inference项目地址: https://gitcode.com/GitHub_Trending/op/openvinoOpenVINO 是 Intel 开源的 AI 推理优化工具箱负责把你用 PyTorch、ONNX、TensorFlow 等框架训练的模型做转换、优化再编译部署到 CPU、Intel 独显/核显和 NPU专用 AI 加速芯片上跑推理。它覆盖 Windows、macOS、Linux 三个平台补上的是模型从训练环境迁到业务环境时最头疼的一段不改业务代码就把推理速度提上来。谁该读这篇读完这节能对号入座决定自己走到哪一步。独立开发者手里有个 PyTorch 分类或检测模型想塞进产品读完能用 pip 装好并在本机 CPU 上跑通第一次推理。边缘设备开发者要在树莓派、旧笔记本或带 Intel NPU 的轻薄本上离线跑模型读完能确认设备支持情况并编译到目标硬件。数据科学工程师习惯用 ONNX 中转模型读完能分清.onnx和 OpenVINO IR模型序列化格式两种加载方式的区别。C 应用开发者不想在业务里嵌 Python读完能照着 samples 目录里的 C/C/JS 示例找到对应入口。跑起来之前读完这节能配好环境分 pip 直装和源码编译两条路。路线要装什么安装方式pip 直装推荐Python 3.9–3.12 pippip install -U openvino源码编译Linux 为例CMake ≥ 3.26、GCC ≥ 7.5构建期依赖若干库sudo ./install_build_dependencies.sh源码编译macOS / Windows与 Linux 类似工具链以平台为准以docs/dev/build_mac_intel_cpu.md、build_windows.md实际内容为准绝大多数场景走 pip 就够了pip install -U openvino python -c import openvino as ov; print(ov.__version__)成功后你会看到控制台打印出 OpenVINO 的版本号。需要最新特性或要动源码时走源码编译Linux 为例git clone https://gitcode.com/GitHub_Trending/op/openvino cd openvino git submodule update --init --recursive sudo ./install_build_dependencies.sh mkdir build cd build cmake -DCMAKE_BUILD_TYPERelease .. cmake --build . --parallel成功后你会在build/bin/intel64/Release下看到编译出的运行时库build/tools/ovc下多出模型转换命令。构建耗时较长资源紧张的机器可用cmake --build . --parallel 8限制并行数。首次使用走一遍读完这节能独立跑通你的第一次推理。装包验证执行上一节的 pip 命令看到版本号即通过。确认可用设备代码里用ov.Core()调.available_devices属性。卡住时先看 Python 是否在 3.9–3.12 范围内版本不对 import 会直接报错。拿到模型文件用现成的.onnx或 OpenVINO IR.xml结构 .bin权重文件PyTorch 模型可在下一步直接转换无需先导出。编译到目标设备ov.compile_model(model, CPU)把模型针对该硬件做算子映射和优化耗时略长属正常。跑一次推理看输出输入张量喂进去读输出张量 shape 和数值。功能逐个拆读完这节能按场景挑出你要用的四块能力。同一份模型切换 CPU、GPU、NPU出差带着轻薄本同一个模型想核显能跑就交核显回公司台式机再换回独显。操作路径加载和转换都不变只把ov.compile_model第二个参数从CPU改成GPU或NPU先打印available_devices确认设备在列。训练框架模型直接转成 IR给旧笔记本加本地问答模型是同事用 PyTorch 训的、对方不配合导出。操作路径model torch.hub.load(pytorch/vision, shufflenet_v2_x1_0, weightsDEFAULT) example torch.randn(1, 3, 224, 224) ov_model ov.convert_model(model, example_input(example,)) ov.save_model(ov_model, shufflenet.xml)成功后会生成.xml.bin两个文件之后加载不再需要 PyTorch 环境。ONNX 文件则直接ov.Core().read_model(a.onnx)以仓库支持列表为准。输入尺寸、归一化交给 PreProcessor产品上线前把训练时的 resize、除以 255、channel 重排这些步骤固化下来避免各端预处理不一致。操作路径拿到编译好的模型后调ov.PrePostProcessor在 input 上链式设tensor_info、scale、mean最后用它的build()拿回带预处理逻辑的模型。基准工具量化提速效果深夜调试完想确认优化到底省了多少毫秒凭感觉没用。操作路径命令行执行benchmark_app 模型.xml -d CPU在samples/cpp/benchmark_app/下也能找到对应源码版本输出里有每次迭代的耗时和吞吐统计。底层思路读完这节能看懂三个设计决策动源码前心里有底。前端和运行时拆开它做了什么每个训练框架单独做成一个前端插件src/frontends/下 pytorch、onnx、tensorflow、jax、paddle 各占一个目录统一输出到同一套核心模型结构定义在src/core/。为什么这么设计新框架支持不碰核心代码框架升级也只改自己的前端目录。改源码时看src/frontends/对应框架子目录。设备以插件形式注册它做了什么Core枚举可用设备CPU、GPU、NPU 各自是独立插件代码在src/plugins/下的 intel_cpu、intel_gpu、intel_npu 等目录auto 插件负责自动挑最快设备。为什么这么设计加新硬件只需新增插件目录上层一行不改。改源码时看src/plugins/CMakeLists.txt和对应插件目录。推理请求支持异步它做了什么InferenceRequestsrc/inference/目录同时提供同步infer和set_blobasync_infer的异步用法配合 wait 控制完成时机。为什么这么设计多路摄像头或并发问答场景下请求可以排队重叠执行而不是串行干等。改源码时看src/inference/include/openvino/inference.hpp和src/inference/docs/下的说明。动手改一改读完这节能挑一条二开路径先动手。换成自己的模型验证全流程把上面 5 行转换代码里的 hub 模型换成自己的 PyTorch 模型或 onnx 路径在samples/python/hello_classification/脚本里替换模型路径跑通并看到分类结果即改对了。跑一个不同设备的插件把编译目标从 CPU 换成 NPU在samples/python/hello_classification/hello_classification.py里改设备名available_devices里有NPU且推理出结果即改对了。加自定义预处理规则在samples/python/hello_reshape_ssd/hello_reshape_ssd.py基础上给 PreProcessor 加一层scale对比加前后输出数值变化符合预期即改对了。卡住了先看这读完这节能自行排查前 5 类问题。import 报版本错误Python 版本不在 3.9–3.12 范围换用支持的 Python 版本重装。available_devices只有 CPUGPU 没装 OpenCL 驱动或 NPU 驱动缺失装好对应驱动后重启以官方支持设备列表为准。转换或编译报 unsupported op模型里有当前版本未支持的算子升级 openvino或把该算子拆成基础算子。GPU 编译后比 CPU 还慢输入尺寸太小导致 kernel 开销大于收益先换 CPU 跑通再用 benchmark_app 量化对比。源码编译报第三方库缺失git submodule update --init --recursive没执行或网络中断重跑该命令国内网络可试仓库自带的scripts/submodule_update_with_gitee.sh。项目采用 Apache-2.0 协议商用免费。如果你正被模型在训练机上跑得动、上不了业务机卡住先花 5 分钟用 pip 跑通第一版git clone https://gitcode.com/GitHub_Trending/op/openvino发现 bug 或缺少机型/算子支持欢迎提 issue 或 PR。【免费下载链接】openvinoOpenVINO™ is an open source toolkit for optimizing and deploying AI inference项目地址: https://gitcode.com/GitHub_Trending/op/openvino创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门