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.

[参考译文] AM62A7:tidl_model_import.out 无法编译正确的模型.bin 文件

Guru**** 2393725 points
Other Parts Discussed in Thread: AM62A7

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1492841/am62a7-tidl_model_import-out-cannot-compile-the-correct-model-bin-file

器件型号:AM62A7

工具与软件:

你(们)好

我使用的平台是 am62a7
我使用了 Edge AI Studio 导出编译的模型
am62a7 SDK 9.1测试中提供了.BIN 文件
但我使用 edgeai-tidl-tools 中的 tidl_model_import.out
编译生成的文件与 Edge AI Studio 生成的文件不同
无 config.YAML dataset.YAML param.yaml
我的参数有什么问题吗?

CAT tidl_onnx.txt
modelType = 2
numParamBits = 8
numFeatureBits = 8
quantizationStyle = 3

InputNetFile ="/home/user001/yolox_nano_lite/model/model.onnx
outputNetFile ="/home/user001/output_model_1/tidl_net_yolox.bin "
outputParamsFile ="/home/user001/output_model_1/tidl_io_yolox_"
inDataNorm = 1
inMean = 0 0 0
缩放= 1.0 1.0 1.0
inDataFormat = 1
InWidth = 640
InHeight = 640
inNumChannels = 3
numFrames = 1
inData ="/home/user001/input_dataset/detection_list.txt "
perfSimConfig =../../test/testvecs/config/import/device_config.cfg
perfSimTool ="/home/user001/edgeai-tidl-tools_101/tools/AM62A/tidl_tools/ti_cnnperfsim.out "
GraphVizTool ="/home/user001/edgeai-tidl-tools_101/tools/AM62A/tidl_tools/tidl_graphVisualizer.out "
tidlStatsTool =/home/user001/edgeai-tidl-tools_101/tools/AM62A/tidl_tools/PC_dsp_test_dl_algo.out
inElementType = 0
#outDataNamesList ="convolution_output、convolution_output1、convolution_output2"
metaArchType = 6
metaLayersNamesList ="/home/user001/yolox_nano_lite/model/model.prototxt "
postProcType = 2

输出文件名

视图
.
├──tidl_io_yolox_1.bin
├──tidl_net_yolox.bin
├──tidl_net_yolox.bin.layer_info.txt
├──tidl_net_yolox.bin_netLog.txt
├──tidl_net_yolox.bin_paramDebug.csv
├──tidl_net_yolox.bin.svg
├──tidl_onnx.txt.perf_sim_config.txt
├──tidl_onnx.txt.qunat_stats_config.txt
├──tidl_onnx.txt_stats_tool_out.bin
├──tidl_onnx.txt_stats_tool_out.bin_001.jpg_000000_tidl_post_proc2.png
├──tidl_onnx.txt_stats_tool_out.bin_001.jpg_000000.txt
└──
├──bufinfolog_0.csv
├──bufinfolog_0.txt
├──perfSimInfo.bin
└──wlinfolog_0.txt

1个目录、15个文件

归档文件

视图
.
├──20250319-020412_yolox_nano_lite_onnxrt_AM62A.tar.gz
├──伪影
│  ├──allowedNode.txt
│  ├──detslabels_tidl_io_1.bin
│  ├──detslabels_tidl_net.bin
│  ├──detslabels_tidl_net.bin.layer_info.txt
│  ├──detslabels_tidl_net.bin_netLog.txt
│  ├──detslabels_tidl_net.bin.svg
│  ├──onnxrtMetaData.txt
│  └──runtimes_visualization.svg
├──CONFIG.YAML
├──dataset.yaml
μ├──模型
│  ├──model.onnx
│  ├──model.prototxt
│  └──model_qparams.prototxt
├──param.yaml
└──run.log

2个目录、16个文件

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

    尊敬的 Martin:  

    我看不到 SDK 9.1上的 Edge AI Studio 生成的工件有任何问题。 您在 EVM 上使用的 SDK 是什么。 EVM 上的 SDK 应与用于生成伪影的 SDK 版本匹配。 有关 tidl-tools 版本兼容性的详细信息、请访问:https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1455079/faq-edge-ai-studio-is-sdk-version-important-for-edge-ai-and-ti-deep-learning-tidl-with-c7x-on-am6xa-socs-am62a-am67a-am68a-am68pa-am69a

    检查版本兼容性后、如果型号仍然无法 正常工作、您是否会 分享您收到的日志/错误?

    此致、

    Qutaiba

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

    尊敬的 Martin:

    nothin 本质上是错误的你的伪影。 在两种情况下、文件夹结构均有效。 区别是用于编译模型的两个更简单的独立流程。  

    我发现您正在使用 tidl_model_import.out。 这是用于编译模型的 TIDL-RT 接口-对该接口的文档和支持更加有限。 要使用此接口运行推理、只需 IO_1和_net 二进制文件、但不受支持的层无法运行。

    Edge Ai Studio 正在使用开源运行时(OSRT)编译流程。 这将为工件生成附加信息、例如导入和推理调用正在使用 ONNXRuntime 之类的运行时。 附加文件可帮助 ONNX 了解.ONNX 模型中的哪些层将发送到 C7xMMA 加速器。 这就是使用"onnxrtMetaData.txt"等文件的原因。 OSRT 流允许 CPU 运行不受支持的图层。  

    • Edge AI Studio 还生成 dataset.yaml 和 params.yaml。 这些也是便利文件、支持通过 edgeai-gst-apps 等其他应用来了解如何预处理输入、如何后处理输出(包括类名称)等  
    • edgeai-tidl-tools 存储库通过 examples/osrt_python 建议此流程
    • 很难使用 TIDL-RT 进行编译并通过 OSRT 进行推理。 但是、使用 OSRT 进行编译和使用 TIDL-RT 进行推理要容易得多。 我建议在 Python 中使用 OSRT 进行编译。  
      • 有几个罕见的例外,如多头模型,其中一个头需要元体系结构

    BR、

    Reese

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

    这个经过9.1训练的模块有问题

    (tflite_env) user001@user001-CoffeeLake:~/edgeai-tidl-tools-10_00_07_00/examples/osrt_python/ort$ python3 onnxrt_ep.py -c --model OD-yolox_nano_lite
    可用的执行提供程序:['TIDLExecutionProvider ','TIDLComplationProvider ','CPUExecutionProvider ']

    运行1个模型-['OD-yolox_nano_lite']


    Running_Model : OD-yolox_nano_lite.


    在模型/home/user001/yolox_nano_lite/model/model.onnx 上运行形状推理

    ============== [model compilation started]========

    模型编译将执行以下阶段:
    1.解析
    2.图形优化
    3.量化与校准
    4.记忆规划

    ============== [版本摘要]==========

    -------------------------------------------------------
    TIDL 工具版本| 10_00_07_00 |
    -------------------------------------------------------
    | C7x 固件版本| 10_00_02_00 |
    -------------------------------------------------------
    |运行时版本| 1.14.0+10000005 |
    -------------------------------------------------------
    |模型选项集版本| 11 |
    -------------------------------------------------------

    注意:此处的运行时版本指定了 ONNXRT_VERSION+TIDL_VERSION
    例如:1.14.0+1000XXXX -> ONNXRT 1.14.0和 TIDL_version 10.00.XX.XX

    ============== [解析已开始]==========

    [TIDL 导入][解析器]警告:未识别为物体检测网络的网络:( 1)忽略网络不是物体检测网络(2)如果网络是物体检测网络,请指定"model_type":"OD"作为 OSRT 编译选项的一部分

    --------------- 子图信息摘要-------------------------------------------------------
    -------------------------------------------------------
    |核心|节点数|子图数|
    -------------------------------------------------------
    | C7x | 237 | 9 |
    | CPU | 20 | x |
    -------------------------------------------------------
    --------------------------------------------------------
    |节点|节点名称|原因|
    --------------------------------------------------------
    |收集|/collect_4 |仅支持线路收集|
    | ReduceMax |/ReduceMax |仅在高度|上支持减少
    | Less |/less | TIDL 不支持的层类型|
    | NOT |/NOT | TIDL 不支持层类型|
    | nonzero |/nonzero_1 | TIDL 不支持层类型|
    | ArgMax |/ArgMax |仅支持 keepdims = 1 (默认值)|
    | GatherND |/GatherND_1 | TIDL 不支持层类型|
    TIDL 不支持 Exp |/Exp |层类型|
    |收集|/collect_3 |仅支持线路收集|
    |收集|/collect_2 |仅支持线路收集|
    TIDL 不支持层类型|
    |收集|/collect_1 |仅支持线路收集|
    |收集|/收集|仅支持线路收集|
    TIDL 不支持层类型|
    | Sub |/Sub_1 | Sub/Div |中不支持两个作为变量的输入
    TIDL 不支持层类型|
    | Sub |/Sub | Sub/Div |中不支持两个作为变量的输入
    TIDL 不支持层类型|
    |收集|/collect_6 |仅支持线路收集|
    | GatherND |/GatherND | TIDL 不支持层类型|
    --------------------------------------------------------
    ============== [解析已完成]========

    工艺流程1:
    回溯(最近的呼叫最后):
    文件"/usr/lib/python3.10/multiprocessing/process.py、第314行、位于_bootstrap 中
    self.run()
    文件/usr/lib/python3.10/multiprocessing/process.py、第108行、运行中
    self._target(*self._args,**self._kwargs)
    文件"run_model 中的第325行、/home/user001/edgeai-tidl-tools-10_00_07_00/examples/osrt_python/ort/onnxrt_ep.py
    SESS = RT.InferenceSession (
    文件"init__中的第362行"/home/user001/tflite_env/lib/python3.10/site-packages/onnxruntime/capi/onnxruntime_inference_collection.py "
    self._create_infer_session (提供程序、提供程序选项、禁用优化程序)
    在_create_inference_session 中、文件"cmate"/home/user001/tflite_env/lib/python3.10/site-packages/onnxruntime/capi/onnxruntime_inference_collection.py、第410行
    sess.initialize_session(providers、provider_options、disabled_optimizers)
    onnxruntime.capi.onnxruntime_pybind11_state.NotImplemented:[ONNXRuntimeError]: 9: Not_Implemented :无法找到适用于 Split 的内核(11)(节点 Split )。 未找到内核
    ^CTraceback (最近的调用最后):
    文件"/home/user001/edgeai-tidl-tools-10_00_07_00/examples/osrt_python/ort/onnxrt_ep.py、第532行、在中
    nthreads = join_one (nthreads)
    文件"join_one"、第499行、位于/home/user001/edgeai-tidl-tools-10_00_07_00/examples/osrt_python/ort/onnxrt_ep.py 中
    sem.acquire ()
    键盘中断

    (tflite_env) user001@user001-CoffeeLake:~/edgeai-tidl-tools-10_00_07_00/examples/osrt_python/ort$

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

    尊敬的 Martin、请在我们的另一主题中查看我的回复。  

    您在此处看到的问题与元架构相关。 请根据 model_config 中 https://github.com/TexasInstruments/edgeai-tidl-tools/blob/cfa43071fe5797c45dd35182a942b9b6539d8922/examples/osrt_python/model_configs.py#L766中的说明设置适当的物体检测设置 


    BR、
    Reese