专栏算法工具链使用docker1.1.45版本 编译的模型文件 hbm 报错---[E][DNN][validate_util.cpp:483]

使用docker1.1.45版本 编译的模型文件 hbm 报错---[E][DNN][validate_util.cpp:483]

已解决
xiaodong2023-06-15
34
19

用户您好,请详细描述您所遇到的问题,这会帮助我们快速定位问题~

1.芯片型号:J5
2.天工开物开发包OpenExplorer版本:J5_OE_1.1.45
3.问题定位:例如模型转换、板端部署
4.问题具体描述

[E][DNN][validate_util.cpp:483](1681360624922) tensor aligned shape size(uv_length) is 294912, but tensor hbSysMem memSize(sysMem[1]) is 0, tensor hbSysMem mshape size!

[E][DNN][multi_model_task_delegation.cpp:443](1681360624922) invalid input

[E][DNN][hb_dnn.cpp:562](1681360624922) taskHandle is invalid

[E][DNN][hb_dnn.cpp:581](1681360624938) taskHandle is invalid

附件:
算法工具链
评论4
0/1000
  • 颜值即正义
    Lv.2

    什么和什么无法对齐?差六倍是什么意思?

    2023-06-15
    0
    6
    • xiaodong回复颜值即正义:

      [E][DNN][validate_util.cpp:483](1681360624922) tensor aligned shape size(uv_length) is 294912, but tensor hbSysMem memSize(sysMem[1]) is 0, tensor hbSysMem mshape size!

      [E][DNN][multi_model_task_delegation.cpp:443](1681360624922) invalid input

      [E][DNN][hb_dnn.cpp:562](1681360624922) taskHandle is invalid

      [E][DNN][hb_dnn.cpp:581](1681360624938) taskHandle is invalid

      我实际的输入大小是1*3*576*1024 但是获取模型大小是294912 正好是6倍

      2023-06-15
      0
    • 颜值即正义回复xiaodong:
      跟这个没关系,uv数据应该存在sysMem[1]里面,但是你没有给sysMem[1]分配内存空间。
      2023-06-15
      0
    • 颜值即正义回复xiaodong:

      aligned shape是对齐后的尺寸,比输入原图大是很正常的,可以参考00 quick start 和 01/tensor示例去写代码

      2023-06-15
      0
    • xiaodong回复颜值即正义:

      你好 我这边是读取的bgr的图像 没有uv面的数据的

      2023-06-15
      0
    • 颜值即正义回复xiaodong:

      你在板端运行以下命令:

      hrt_model_exec model_info --model_file xxxxxxx.hbm

      以及

      hrt_model_exec perf --model_file xxxxxx.hbm

      我看一下打印的所有信息

      2023-06-15
      0
  • 颜值即正义
    Lv.2

    您好,你使用的数据类型应该是nv12_seperate吧?在申请内存的时候需要申请两块,一块存放y分量,一块存放uv分量,之后分别分配内存空间。再检查一下代码看看?

    可以参考我们的代码:

    ddk/samples/ai_toolchain/horizon_runtime_sample/code/01/tensor

    2023-06-15
    0
    5
    • xiaodong回复颜值即正义:

      你好 请问我这边需如何修改的 请问是使用这个吗 我的训练数据是bgr的 正常我应该读取bgr图像 做推理

      请问我这边是应该从模型转换做修改 还是从推理inference代码做修改的

      // YUV_NV12 NCHW
      HB_CHECK_SUCCESS(
      test_prepare_free_fn(HB_DNN_IMG_TYPE_Y, HB_DNN_LAYOUT_NCHW, randint_fn),
      "test_prepare_free_fn failed");
      2023-06-15
      0
    • xiaodong回复xiaodong:

      请问可以电话联系一下你吗 紧急

      2023-06-15
      0
    • 颜值即正义回复xiaodong:

      你好,社区这边还是通过这种帖子回复的形式进行交流哈,看您使用的是J5的板子,如果您特别紧急,可以找对应的直接技术支持来解决您的问题

      2023-06-15
      0
    • xiaodong回复xiaodong:

      你好 请问我这边需要如何确认他是nv12 还是HB_DNN_IMG_TYPE_NV12_SEPARATE

      2023-06-15
      0
    • 颜值即正义回复xiaodong:

      这个01/tensor是一个指导,告诉你如何针对不同的输入数据来分配内存。到底是nv12还是nv12_separate,应该是你那边能配置的。可以看下00 quick start的代码,read imag2 tensor as nv12函数,y和uv数据都存进了同一块内存空间,那他就是nv12的,如果存进了两个分开的地址,那就是nv12_separate。

      2023-06-15
      0
  • 颜值即正义
    Lv.2

    您可以再阅读一下中文文档第四章PTQ部分,以及runtime sample的00 quick start示例代码,有助于理解整个流程。在runtime示例代码中,我们会读取本地存储的rgb图片,转换成nv12送给模型。但模型的开头会有一个预处理节点,用来将nv12转成rgb,再送给模型内部。之所以有这么一套流程,是因为实际应用时,数据通常都是摄像头采集的nv12数据,因此我们将本地的rgb转成nv12模仿这个过程。模型的预处理节点可以将nv12转成rgb,因此浮点模型训练时,使用rgb就可以。

    2023-06-15
    0
    3
    • xiaodong回复颜值即正义:

      PTQ模式下我跑通了 使用的模式石QAT的

      2023-06-15
      0
    • xiaodong回复颜值即正义:

      你好 现在是输入数据无法对齐的 正好差了6倍 使用的量化方式是QAT的

      2023-06-15
      0
    • xiaodong回复颜值即正义:

      您好

      2023-06-15
      0
  • 颜值即正义
    Lv.2

    不管是PTQ还是QAT出来的模型,板端部署的C++代码写法都是差不多的。

    2023-06-15
    0
    1
    • xiaodong回复颜值即正义:

      您好 我这边用的相同的代码 我自己用onnx转的ptq量化模型 可以推理的

      但是我拿到hmr模型 使用的qat模式 就会报这个错误的 我看了sample 还有文档的 不知道这个错误应该如何下手解决的 可以提供一个方案吗

      2023-06-15
      0