openvinoC# 部署报错
Output output = compiled_model.output();
此句报错,YOLOV5 onnx 模型查看输出层发现有4个输出,而github 上给出的模型IR只有一个输出层,所以报错。所以使用openvino导出IR模型时需要指定输出的层。
output
name: output
tensor: float32[1,25200,6]
350
name: 350
tensor: float32[1,3,80,80,6]
416
name: 416
tensor: float32[1,3,40,40,6]
482
name: 482
tensor: float32[1,3,20,20,6]
官网说明
参数输出:
转换后的模型中要保留的一个或多个以逗号分隔的模型输出。其他输出将被删除。如果未指定输出参数,则保留原始模型的所有输出。请勿将 :0 添加到 TensorFlow 的名称中。转换后的模型中输出的顺序与指定名称的顺序相同。示例:output=”out_1”,或 output=[“out_1”,“out_2”]。对于以 Python 对象表示的 PaddlePaddle 模型,您可以将输出指定为 PaddlePaddle Python 对象或此类对象的列表。
参数示例输入:
原框架模型输入示例。对于 PyTorch 可以是 torch.Tensor。对于 Tensorflow 可以是 tf.Tensor 或 numpy.ndarray。对于 PaddlePaddle 可以是 Paddle Variable。
参数扩展:
带有扩展名的库(.so 或 .dll)的路径、以逗号分隔的路径列表、从 BaseExtension 类派生的对象或对象列表。
参数详细:
打印有关转换的详细信息。
参数 share_weights :
重用原始模型中分配的权重。如果输入模型在文件中,则使用 mmap 直接从文件分配权重。如果输入模型是运行时对象,则原始模型中分配的原始内存区域将重用于转换后的模型中的权重。
只需要最上面name:output
import openvino as ov
model = ov.convert_model('your_model_file.onnx',output='output')
save_model(model, './model.xml')