模型推理
功能介绍
使用Vision SDK模型推理功能通过给定输入和指定模型,进行推理获得输出结果,支持om格式的模型推理,可使用ATC工具构建的动态Batch、动态分辨率和分档动态维度模型进行推理。模型推理输入为张量Tensor类型,由用户使用Vision SDK提供的接口构造使用。当前Vision SDK提供的python接口只支持同步推理。
接口调用流程
使用模型推理前,用户需准备好输入数据以及需要加载的模型,根据模型路径或者内存方式初始化Model类,通过调用Model类的infer接口获取模型推理结果。
模型推理调用流程参考如下:
图1 模型推理接口调用流程


关键接口说明如下:
示例代码
以下为功能特性关键步骤的代码示例,不可以直接拷贝运行,仅供参考。
import numpy as np from mindx.sdk import base from mindx.sdk.base import Tensor, Model def process(): # 模型推理 # 构造输入Tensor(以二进制输入为例) # 读取前处理好的numpy array二进制数据 input_array = np.load("preprocess_array.npy") # 构造输入Tensor类并转移至device侧 input_tensor = Tensor(input_array) input_tensor.to_device(device_id) # 构造输入Tensor列表 input_tensors = [input_tensor] # 模型路径 model_path = "resnet50_batchsize_1.om" # 初始化Model类 model = Model(modelPath=model_path, deviceId=device_id) # 执行推理 outputs = model.infer(input_tensors) if __name__ == "__main__": base.mx_init() # 资源初始化 process() base.mx_deinit() # 资源去初始化
父主题: 使用API接口方式开发(Python)