专栏算法工具链YOLOV8在J3平台无法转换双核模型

YOLOV8在J3平台无法转换双核模型

已解决
默认914562024-11-13
120
18

您好,自己训练的单通道yolov8模型,已经成功转换上板并且精度没有问题,但性能达不到预期只有17FPS,模型比v8s小一些,并且是单通道只有5个分类,在文档中看到可以在模型转换时设置core_num为2启用双核,但一旦加入这行转换即报错,只能生成onnx文件不生成bin文件,想请教是什么原因。

算法工具链
征程3
+1
评论5
0/1000
  • Huanghui
    Lv.5

    你好:

    1, J3平台是支持

    core_num=2设置的,如果在正确设置的情况下,依然存在问题,可以分享你的模型和配置文件看看。2. J3 BPU是双核的,同一时间两个核可以同时并行推理。对于一次推理过程,有推理任务的提交者和推理任务的执行者。BPU是任务的执行者,而thread_num则是推理任务的提交者个数,但是不管有多少个任务提交者,他们提交的任务都要进入队列排队,而执行者同一时间最多只有两个核在进行推理。
    2024-11-14
    1
    1
    • 默认91456回复Huanghui:

      您好,原模型不太方便分享,我下载了yolov8n的官方模型转换仍然失败,相关文件已上传到百度网盘

      链接:https://pan.baidu.com/s/1AU9JnRsmjGyCzV8Q1bfjDA?pwd=62zu

      提取码:62zu

      2024-11-14
      0
  • kotei左文亮
    Lv.3

    问题收到

    2024-11-13
    0
    0
  • DR_KAN
    Lv.4

    请切换到旧的算法工具链版本再试一下呢?

    2024-11-14
    0
    0
  • Huanghui
    Lv.5

    你好,这个是你的编译环境的问题,我用你分享的配置文件以及校准文件测试是好的。

    编译结果链接: https://pan.baidu.com/s/156yM26vYzOp7pCsrFxeZqw?pwd=pcae

    2024-11-14
    0
    2
    • 默认91456回复Huanghui:

      您好,有什么debug的方向吗,换成了旧版的docker,换到虚拟机的环境,换成cpu版本的docker,都还是报同样的错

      2024-11-15
      0
    • Huanghui回复默认91456:

      你这个比较奇怪,工具链就统一用1.16.6吧,然后找其他伙伴在另一个环境上试试,记住重新建立一个新的容器,说不定你的容器改了啥忘记了

      2024-11-15
      0
  • kotei左文亮
    Lv.3
    ”在文档中看到可以在模型转换时设置core_num为2启用双核“哪个文档啊?docker是哪个版本?“只能生成onnx文件不生成bin文件”这是PTQ吧,那你的onnx文件是训练之后生成的吧,什么时候会生成onnx文件啊?
    2024-11-13
    0
    10
    • 默认91456回复kotei左文亮:

      您好 onnx文件是使用hb_mapper makertbin 命令生成的,在命令使用的yaml文件中设置了core_num=2, 设置为1的时候可以正常生成original_float,optimized_float,hybrid和calibrated四个onnx模型,以及bin模型,设置为2时只能生成四个onnx模型,在生成bin模型时报图上的错误。

      2024-11-13
      0
    • 默认91456:

      设置为2时只能生成四个onnx模型,生成bin模型时报图上的错误。docker版本是1.16.4

      2024-11-13
      0
    • 默认91456:

      文档参考的是https://developer.d-robotics.cc/api/v1/fileData/horizon_xj3_open_explorer_cn_doc/oe_mapper/source/faststart/quickstart.html#yaml 3.2.3模型转换部分

      2024-11-13
      0
    • kotei左文亮回复默认91456:

      方便上传一下的yaml文件吗?

      2024-11-13
      0
    • kotei左文亮回复默认91456:
      core_num 参数说明:地平线平台支持利用多个加速器核心同时完成一个推理任务,

      多核心适用于输入尺寸较大的情况, 理想状态下的双核速度可以达到单核的1.5倍左右。

      如果您的模型输入尺寸较大,对于模型速度有极致追求, 可以配置core_num=2。
      你的输入是多大啊? 也许是的输入不够大,并不能满足双核推理。
      2024-11-13
      0
    • 默认91456回复kotei左文亮:
      输入是512x640
      2024-11-13
      0
    • kotei左文亮回复默认91456:

      能试一下大输入吗? 估计这个输入不够大,不能进行双核推理。现在文档里也没有具体说明多大的输入可以进行双核推理。

      2024-11-13
      0
    • 默认91456回复kotei左文亮:

      好的会尝试一下 另外请问板端运行hrt_model_exec perf时的thread_num参数可否多解释一下呢 例如我设置为8是同时处理8帧图像吗 如果是实时视频流是不是只能设置为1

      2024-11-13
      0
    • kotei左文亮回复默认91456:
      thread_num是同时运行处理程序的线程数量,并不是同时处理8帧图像进行推理,可以理解1长推理图像,在运行推理的时候有8个线程进行处理。docker文档里建议设置成1,评测Latency时一般采用单线程串行的推理方式处理1帧。
      2024-11-14
      0
    • kotei左文亮回复默认91456:

      由于您长时间未回复,此问题就先关闭了,如还有疑问可再发帖求助。

      2024-11-18
      0