This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] PROCESSOR-SDK-J721E:问题:在 TIDL 编译期间无法识别 Nanodet ONNX 模型内的某些节点:OP 类型调整大小、未知输入维度、TIDL 不支持

Guru**** 2335380 points
Other Parts Discussed in Thread: TDA4VM
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1515196/processor-sdk-j721e-issue-some-nodes-inside-nanodet-onnx-model-cannot-be-recognized-during-tidl-compiling-op-type-resize-unknown-input-dimension-not-supported-by-tidl

Thread:TDA4VM 中讨论的其他器件

工具/软件:

嘿、开发人员、

我正在尝试将 Nanodet-pl-m 模型部署到 TDA4VM 中。 解析该模型时、会出现以下问题:
---------------------------- 子图表信息摘要--------------------------------
----------------------------------------------------------------------------------------
|核心|节点数量|子图数量|
----------------------------------------------------------------------------------------
| C7x | 373 | 3 |
| CPU | 4 | x |
----------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
|节点|节点名称|原因|
----------------------------------------------------------------------------------------------------
|调整大小|调整大小_398 |第199层-工序类型调整大小、未知输入尺寸、TIDL |不支持
| Concat | Concat_399 |第202层-运算类型 Concat、未知输入尺寸、TIDL |不支持
| Conv | Conv_408 | Layer 203 -运算类型 Conv、未知输入维度、TIDL 不支持|
| Conv | Conv_400 |第205层-运算类型 Conv、未知输入维度、TIDL 不支持|
----------------------------------------------------------------------------------------------------

虽然它成功编译了子图、但它会在 TDA4VM 上进行推理期间显示错误:

2025年05月16日17:48:52.260950314 [W:onnxruntime:、graph.cc:1283 Graph] Initializer onnx::Equal_2014显示在图形输入中、不会被视为常数值/权重。 这可能会阻止一些图形优化、例如常量折叠。 如果不需要覆盖它、可以通过使用最新导出器/转换器或使用工具 onnxruntime/tools/python/remove_initializer_from_input.py 重新生成模型、将其移出图形输入。
2025年05月16日17:48:52.260967550 [W:onnxruntime:、grap.cc:1283 Graph] Initializer onnx::ConstantOfShape_2015出现在图形输入中、不会被视为常数值/权重。 这可能会阻止一些图形优化、例如常量折叠。 如果不需要覆盖它、可以通过使用最新导出器/转换器或使用工具 onnxruntime/tools/python/remove_initializer_from_input.py 重新生成模型、将其移出图形输入。
已加载 libtidl_onnxrt_EP 0x19e7e2d0
创建的子图的最终数量为:3、-卸载节点- 373、节点总数- 377
应用程序:初始化...!!
906.168010 s:内存:初始化...!!!
906.168063 s:MEM:初始化的 DMA 堆(FD=5)!!!
906.168218 s:内存:初始化...完成!!!
906.168242 s:ipc: init ...!!
906.231994 s:ipc:初始化...完成!!!
remote_service:初始化...!!
remote_service:初始化...完成!!!
906.243566 s:GTC 频率= 200 MHz
应用程序:初始化...完成!!
906.246961 s:vx_zone_info:全局启用 vx_zone_error
906.246990 s:vx_zone_info:全局启用 vx_zone_warning
906.247018 s:vx_zone_info:全局启用 vx_zone_info
906.255377 s:vx_zone_info:[tivxPlatformCreateTargetId:134]已添加目标 MPU-0
906.255609 s:vx_zone_info:[tivxPlatformCreateTargetId:134]添加了目标 MPU-1
906.255787 s:vx_zone_info:[tivxPlatformCreateTargetId:134]添加了目标 MPU-2
906.255886 s:vx_zone_info:[tivxPlatformCreateTargetId:134]添加了目标 MPU-3
906.255976 s:vx_zone_info:[tivxInitLocal:126]初始化完成!!!
906.256003 s:vx_zone_info:全局禁用 vx_zone_info
906.367157 s:vx_zone_error:[ownContextSendCmd:912]命令 ack 消息返回失败 cmd_status:-1
906.367190 s:vx_zone_error:[ownNodeKernelInit:604]针对节点 TIDLNode 的目标内核、TIVx_CMD_NODE_CREATE 失败
906.367202 s:vx_zone_error:[ownNodeKernelInit:605]请确保已为此内核注册目标回调
906.367211 s:vx_zone_error:[ownNodeKernelInit:606]如果目标回调已注册、请确保此内核的创建回调中没有发生错误
906.367220 s:vx_zone_error:[ownGraphNodeKernelInit:690]节点0的内核初始化、kernel com.ti.tidl:4:1 ...失败!!!
906.367254 s:vx_zone_error:[ TIDL 子图形检测]节点内核初始化失败
906.367261 s:vx_zone_error:[ TIDL 子图形检测]图形验证失败
TIDL_RT_OVX:错误:验证 TIDL 图形...失败!!!
TIDL_RT_OVX:错误:验证 OpenVX 图形失败
输入形状:[1、3,416,416]
输入"data":Tensor (float)
906.493170 s:vx_zone_error:[ownContextSendCmd:912]命令 ack 消息返回失败 cmd_status:-1
906.493206 s:vx_zone_error:[ownNodeKernelInit:604]针对节点 TIDLNode 的目标内核、TIVx_CMD_NODE_CREATE 失败
906.493219 s:vx_zone_error:[ownNodeKernelInit:605]请确保已为此内核注册目标回调
906.493226 s:vx_zone_error:[ownNodeKernelInit:606]如果目标回调已注册、请确保此内核的创建回调中没有发生错误
906.493233 s:vx_zone_error:[ownGraphNodeKernelInit:690]节点0的内核初始化、kernel com.ti.tidl:4:1 ...失败!!!
906.493245 s:vx_zone_error:[ TIDL 子图形检测]节点内核初始化失败
906.493252 s:vx_zone_error:[ TIDL 子图形检测]图形验证失败
906.493300 s:vx_zone_error:[ownGraphScheduleGraphWrapper:944]图形未处于需要安排的状态
906.493307 s:vx_zone_error:[vxProcessGraph:868]计划图失败
906.493311 s:vx_zone_error:[vxProcessGraph:873]等待图形失败
错误:运行 TIDL 图形...失败!!!
2025年05月16日17:48:53.32054746 [E:onnxruntime:、SEQUENCE_executor.cc:514 ExecuteKernel]在运行 TIDL_2节点时返回非零状态代码。 名称:'TIDLExecutionProvider_TIDL_2_2'状态消息:TIDL 计算调用失败。
回溯(最近一次呼叫):
文件"/opt/edgeai-tidl-tools/hbg_demo/plot_performance.py、第138行、在中
检测、= sess.run(None、{input_name:input_data})
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^μ s
文件"/usr/lib/python3.12/site-packages/onnxruntime/capi/onnxruntime_inference_collection.py、第217行、正在运行
返回 self._sess.run(output_names、input_feed、run_options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^μ s
onnxruntime.capi.onnxruntime_pybind11_state.Fail:[ONNXRuntimeError]: 1 :失败:运行 TIDL_2节点时返回非零状态代码。 名称:'TIDLExecutionProvider_TIDL_2_2'状态消息:TIDL 计算调用失败。
应用程序:Deinit ...!!
REMOTE_SERVICE:取消初始化...!!!
REMOTE_SERVICE:取消初始化...完成!!!
906.656377 s : IPC: Deinit ...!
906.658292 s : IPC: DeInit ..完成!!
906.658334 s:MEM:Deinit ...!!
906.658349 s:DDR_SHARED_MEM:Alloc's:27 alloc's、共18097464字节
906.658357 s:ddr_shared_mem:free's:27 free's of 18097464 bytes
906.658367 s:DDR_SHARED_MEM:open 的:0个0字节的分配
906.658379 s:内存:Deinit ...完成!!
应用程序:Deinit ...完成!!

您能帮我调试一下吗?  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Tongshen:

    能否分享您正在使用的 TIDL 工具版本、模型以及运行方式? 它是在 TIDL PC 仿真上工作、还是仅在 EVM 上出现错误?

    您还可以使用 此处的模型优化器工具、以确保所有层都在 TIDL 上运行。

    此致、

    Christina

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嗨、Christina、

    感谢您的答复!

    TIDL 工具版本如下所示:
    TIDL 工具版本- 10_01_04_00  
    C7x 固件版本- 10_01_00_01  
    运行时版本-1.15.0  
    型号选项版本-11.  

    因此、我首先将 ONNX 模型后期处理和 NMS 部分自定义为(n、6)格式的输出框。  Nanodet 与 YOLOX 类似、我使用  tidl_meta_arch_yolox_PB2来生成.prototxt 文件。 在 PC 端、在 CPUExecutionProvider 上运行正常、但在 TIDLExecutionProvider 上运行会崩溃:

    --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    可用的执行提供程序:['TIDLExecutionProvider '、'TIDLCompilationProvider '、'CPUExecutionProvider ']

    运行1个模型-["ti_nanodet_416x416']


    Running_Model : ti_nanodet_416x416

    对 TIDL EP 运行推理
    libtidl_onnxrt_EP 已加载0x574aa9ef8370
    创建的子图的最终数量为:3、-卸载节点- 373、节点总数- 377
    软限制为10240
    硬限制为10240
    MEM:初始化...!!!
    MEM:初始化...完成!!!
    0.0s:vx_zone_init:Enabled
    0.9s:vx_zone_error:Enabled
    0.12s:vx_zone_warning:已启用
    0.2493s:vx_zone_init:[tivxInit:190]初始化完成!!!
    0.28758s:vx_zone_error:[tivxsigVisionCreate:363]调用 ialg.algAlloc 失败、状态为-1125
    0.28794s:vx_zone_error:[tivxKernelTIDLCreate:977] tivxihighVisionCreate 返回 NULL
    0.28897s:vx_zone_error:[ownContextSendCmd:885]返回命令 ack 消息失败 cmd_status:-1
    0.28910s:vx_zone_error:[ownNodeKernelInit:592]对于节点 node_104、目标内核 TIVx_CMD_NODE_CREATE 失败
    0.28917s:vx_zone_error:[ownNodeKernelInit:593]请确保已为此内核注册目标回调
    0.28923s:vx_zone_error:[ownNodeKernelInit:594]如果目标回调已注册、请确保此内核的创建回调中没有发生错误
    0.29095s:vx_zone_error:[ownGraphNodeKernelInit:620]节点0的内核初始化、kernel com.ti.tidl:4:1……失败!!
    0.29103s:vx_zone_error:[vxVerifyGraph:2254]节点内核初始化失败
    0.29106s:vx_zone_error:[vxVerifyGraph:2311]图形验证失败
    TIDL_RT_OVX:错误:验证 TIDL 图形...失败!!!
    TIDL_RT_OVX:错误:验证 OpenVX 图形失败

    -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    我将使用模型优化器工具调试每一层。 根据上面显示的错误、我怀疑下面显示的 ONNX 图存在问题;TIDL 工具无法在瓶颈中检测到该标识层。  我无法在此处上传我的模型和.protottxt 文件、是否有其他上传文件的选项?

      

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Tongshen:

    感谢您发送编修。 让我调查一下,并尝试在我结束时重现 你可以通过电子邮件发送给我,如果这对你有用--> c-kuruvilla@ti.com

    此致、

    Christina