前言
在ultralytics中,导出的yolo11.onnx权重只有一个输出,这无法适配瑞芯微中的解析。其需要九个输出。通用的步骤是在训练完的pt文件后,利用[ultralytics_yolo11],可参考:【YOLOv8部署至RV1126】PT转ONNX、ONNX转RKNN、RKNN预编译
官方导出的onnx权重的输出个数:
利用ultralytics_yolo11导出的onnx权重的输出个数:
为了进一步理解其是如何在官方代码的基础上将其原本一个输出改成九个输出,本文主要使用官方的ultralytics代码(8.3.13版本),将yolo11n.pt文件转成onnx➡rknn➡预编译,比较一下两种转换后的权重是否一致。
文章目录
- 前言
- 一、修改ultralytics
- 二、导出ONNX
- 三、导出RKNN
- 四、预编译
一、修改ultralytics
在ultralytics/nn/modules/head.py中的Detect类的forward函数中添加如下代码:
# 导出适配瑞芯微的ONNX模型ifself.export:y=[]foriinrange(self.nl):