hailo算力模块量化和编译yolov8n

我在Ultralytics Hub中训练了一个YOLOv8s 的模型,并导出为ONNX。接着使用Hailo DCF 工具,并成功生成了一个优化/量化的 HAR文件。不幸的是,在编译HEF文件的最后一步,卡住了。
后来看官方的说明和论坛发现,有些算子不支持,所以使用hailo 的dfc要设置
起始节点和结束节点,在遇到某些算子不支持的情况下,需要找到卷积层
单独作为 节点使用,
如果节点没设置成/model.22/Sigmoid和/model.22/2dfl/Reshape,就会出现,在编译步骤时
BackendAllocatorException: Compilation failed: No successful assignment for: format_conversion1, concat17, feature_splitter9, shortcut_softmax1, reduce_max_softmax1, ew_sub_softmax1, reduce_sum_softmax1, ew_mult_softmax1, conv64"

最终用六个端节点替换了解析步骤错误消息中显示的两个端节点,即/model.22/Sigmoid和/model.22/2dfl/Reshape, 这样HEF文件就可以成功生成。

start_node='images'
#多节点
#专门适用于 yolov8
end_node=['/model.22/cv2.2/cv2.2.2/Conv', 
'/model.22/cv3.2/cv3.2.2/Conv','/model.22/cv2.1/cv2.1.2/Conv','/model.22/cv3.1/cv3.1.2/Conv',
'/model.22/cv2.0/cv2.0.2/Conv','/model.22/cv3.0/cv3.0.2/Conv']
#单节点
#end_node=['/model.22/dfl/conv/Conv']
runner = ClientRunner(hw_arch=chosen_hw_arch)
hn, npz = runner.translate_onnx_model(
    onnx_path,
    onnx_model_name,
    start_node_names=start_node,
    end_node_names=end_node,
    net_input_shapes={"images": [1, 3, 640, 640]},
)
hailo_model_har_name = f"{onnx_model_name}_hailo_model.har"
runner.save_har(hailo_model_har_name)

sitemap