专栏算法工具链onnx模型转为bin模型后,bin模型输入的属性 hbDNNTensorShape validShape 与 alignedShape不一致

onnx模型转为bin模型后,bin模型输入的属性 hbDNNTensorShape validShape 与 alignedShape不一致

已解决
苦瓜跳跳糖2023-01-28
49
9

用户您好,请详细描述您所遇到的问题。

1.硬件获取渠道:供应商

2.当前系统镜像版本:Ubuntu 18.04

3.当前天工开物版本:1.11.4 gpu

4.问题定位:模型转换

5.开发的demo/案例:

6.需要提供的解决方案:

onnx模型转为bin模型后,bin模型输入的属性 hbDNNTensorShape validShape (1*640*640*3)与 hbDNNTensorShape alignedShape(1*640*640*4) 不一致,请问是什么原因?cv读取的是640*640*3(配置文件规定的模型输入为 1*640*640*3) ,是否可以直接作为模型的输入?

算法工具链
评论3
0/1000
  • 颜值即正义
    Lv.2
    2023-01-30
    0
    4
    • 苦瓜跳跳糖回复颜值即正义:

      可以问一下怎么指定alignedShape = validShape吗?是在c代码里直接对input_properties的alignedShape进行赋值吗?代码如下?

      input_properties.alignedShape = input_properties.validShape;
      2023-01-30
      0
    • 颜值即正义回复苦瓜跳跳糖:
      关于具体实现,可以参考ddk/samples/ai_toolchain/horizon_runtime_sample/code/00_quick_start/src/run_mobileNetV1_224x224.cc中的代码哈
      2023-01-30
      0
    • 苦瓜跳跳糖回复颜值即正义:

      已解决,感谢

      2023-01-31
      1
    • 颜值即正义回复苦瓜跳跳糖:

      不客气,一起加油~

      2023-01-31
      0
  • Horizon_guosheng
    Lv.1
    你好,需要扩展到alignedShape进行推理,保证是4的倍数,可以发挥推理的性能,数据需要进行扩展
    2023-01-28
    0
    2
    • 苦瓜跳跳糖回复Horizon_guosheng:

      你的意思是可以通过将

      // 第四步准备输入数据
      hbDNNTensor input;
      hbDNNTensorProperties input_properties;
      hbDNNGetInputTensorProperties(&input_properties, dnn_handle, 0);
      input.properties = input_properties;
      auto &mem = input.sysMem[0];
      int rgb_length = 640 * 640 * 3;
      hbSysAllocCachedMem(&mem, rgb_length);
      memcpy(mem.virAddr, rgb_data, rgb_length); // rgb_data是cv读取的640*640*3的图片数据
      hbSysFlushMem(&mem, HB_SYS_MEM_CACHE_CLEAN);

      直接改成

      // 第四步准备输入数据
      hbDNNTensor input;
      hbDNNTensorProperties input_properties;
      hbDNNGetInputTensorProperties(&input_properties, dnn_handle, 0);
      input.properties = input_properties;
      auto &mem = input.sysMem[0];
      hbSysAllocCachedMem(&mem, 640 * 640 * 4);
      memcpy(mem.virAddr, rgb_data, 640 * 640 * 3); // rgb_data是cv读取的640*640*3的图片数据
      hbSysFlushMem(&mem, HB_SYS_MEM_CACHE_CLEAN);

      就可以了是吗?

      代码参考https://developer.horizon.ai/api/v1/fileData/doc/ddk_doc/navigation/ai_toolchain/docs_cn/horizon_ai_toolchain_user_guide/application_development.html#engineer-implementation的4.3工程实现

      2023-01-29
      0
    • Horizon_guosheng回复苦瓜跳跳糖:

      你好,维度扩展不是直接增加内存容量,可以败诉搜索进行相关示例学习

      2023-01-30
      0
  • 颜值即正义
    Lv.2
    2023-04-24
    0
    0