OpenVINO™ Runtime API 核心使用教程

OpenVINO™ Runtime API 核心使用教程

【免费下载链接】openvino_notebooks openvino_notebooks: 这是OpenVINO Toolkit的Jupyter笔记本集合,提供了一系列关于深度学习模型推理、模型训练和实时演示的交互式教程和示例。 【免费下载链接】openvino_notebooks 项目地址: https://gitcode.com/GitHub_Trending/op/openvino_notebooks

前言

OpenVINO™ 是英特尔推出的深度学习推理工具套件,能够显著加速计算机视觉、自动语音识别、自然语言处理等深度学习模型在各种硬件平台上的推理性能。本文将详细介绍 OpenVINO Runtime API 的核心使用方法,帮助开发者快速上手 OpenVINO 推理引擎。

环境准备

在开始之前,请确保已安装以下依赖项:

import platform
%pip install -q "openvino>=2023.1.0"
%pip install -q requests tqdm ipywidgets

if platform.system() == "Darwin":
    %pip install -q "numpy<2.0.0"

初始化 OpenVINO 运行时

首先需要初始化 OpenVINO 运行时核心对象:

import openvino as ov
core = ov.Core()

设备检测与选择

OpenVINO 支持多种硬件设备,包括 CPU、GPU、VPU 等。我们可以查看当前系统可用的设备:

import openvino.properties as props

devices = core.available_devices
for device in devices:
    device_name = core.get_property(device, props.device.full_name)
    print(f"{device}: {device_name}")

输出示例:

CPU: Intel(R) Core(TM) i9-10980XE CPU @ 3.00GHz

可以通过设备选择器指定推理设备:

device = device_widget()  # 交互式设备选择器

模型加载与编译

OpenVINO 支持多种模型格式,下面分别介绍不同格式模型的加载方法。

1. OpenVINO IR 模型

OpenVINO IR(Intermediate Representation)是 OpenVINO 的原生模型格式,包含一个.xml文件(网络拓扑结构)和一个.bin文件(权重数据)。

classification_model_xml = "model/classification.xml"
model = core.read_model(model=classification_model_xml)
compiled_model = core.compile_model(model=model, device_name=device.value)

2. ONNX 模型

ONNX 是一种开放的模型格式,OpenVINO 可以直接加载:

onnx_model_path = "model/segmentation.onnx"
model_onnx = core.read_model(model=onnx_model_path)
compiled_model_onnx = core.compile_model(model=model_onnx, device_name=device.value)

可以将 ONNX 模型导出为 OpenVINO IR 格式:

ov.save_model(model_onnx, output_model="model/exported_onnx_model.xml")

3. PaddlePaddle 模型

PaddlePaddle 推理模型可以直接加载:

paddle_model_path = "model/inference.pdmodel"
model_paddle = core.read_model(model=paddle_model_path)
compiled_model_paddle = core.compile_model(model=model_paddle, device_name=device.value)

4. TensorFlow 模型

TensorFlow 冻结图格式模型(.pb)可以直接加载:

tf_model_path = "model/classification.pb"
model_tf = core.read_model(model=tf_model_path)
compiled_model_tf = core.compile_model(model=model_tf, device_name=device.value)

5. TensorFlow Lite 模型

TFLite 模型(.tflite)可以直接加载:

tflite_model_path = "model/inception_v4_quant.tflite"
model_tflite = core.read_model(model=tflite_model_path)
compiled_model_tflite = core.compile_model(model=model_tflite, device_name=device.value)

模型信息获取

加载模型后,可以获取模型的输入输出信息:

获取模型输入信息

inputs = compiled_model.inputs
for input in inputs:
    print(f"Input name: {input.any_name}")
    print(f"Shape: {input.shape}")
    print(f"Type: {input.element_type}")

获取模型输出信息

outputs = compiled_model.outputs
for output in outputs:
    print(f"Output name: {output.any_name}")
    print(f"Shape: {output.shape}")
    print(f"Type: {output.element_type}")

执行推理

准备好输入数据后,可以执行推理:

import numpy as np

# 准备输入数据(示例)
input_data = np.random.randn(1, 3, 224, 224).astype(np.float32)

# 执行推理
results = compiled_model([input_data])

# 获取输出结果
output = results[compiled_model.outputs[0]]

模型形状调整

OpenVINO 支持动态调整模型的输入形状:

调整图像尺寸

# 获取原始输入形状
original_shape = model.input().shape
print(f"Original shape: {original_shape}")

# 设置新的输入形状
new_shape = (1, 3, 480, 640)
model.reshape({0: new_shape})

# 重新编译模型
compiled_model = core.compile_model(model=model, device_name=device.value)

调整批处理大小

# 设置动态批处理维度
model.input().shape = [ov.Dimension(), 3, 224, 224]

# 重新编译模型
compiled_model = core.compile_model(model=model, device_name=device.value)

# 执行不同批处理大小的推理
for batch_size in [1, 2, 4]:
    input_data = np.random.randn(batch_size, 3, 224, 224).astype(np.float32)
    results = compiled_model([input_data])

模型缓存

为了提高模型加载速度,可以将编译后的模型缓存到磁盘:

# 设置缓存目录
core.set_property({"CACHE_DIR": "model_cache"})

# 加载并编译模型(会自动使用或创建缓存)
compiled_model = core.compile_model(model=model, device_name=device.value)

总结

本文详细介绍了 OpenVINO Runtime API 的核心使用方法,包括:

  1. 环境准备与运行时初始化
  2. 设备检测与选择
  3. 多种格式模型的加载方法
  4. 模型信息获取
  5. 推理执行
  6. 模型形状调整
  7. 模型缓存优化

掌握这些核心 API 的使用方法,可以帮助开发者高效地部署深度学习模型到各种硬件平台上,充分发挥 OpenVINO 的性能优势。

【免费下载链接】openvino_notebooks openvino_notebooks: 这是OpenVINO Toolkit的Jupyter笔记本集合,提供了一系列关于深度学习模型推理、模型训练和实时演示的交互式教程和示例。 【免费下载链接】openvino_notebooks 项目地址: https://gitcode.com/GitHub_Trending/op/openvino_notebooks

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值