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.

[参考译文] TDA4VM:tidl Importer 中针对 onnx 型号的问题

Guru**** 2487425 points
Other Parts Discussed in Thread: TDA4VM

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1552925/tda4vm-issue-in-tidl-importer-for-onnx-model

器件型号:TDA4VM


工具/软件:

HII

我正尝试使用 TIDL 模型导入工具从 TI Processor SDK RTOS(TDA4VM 平台)转换 ONNX 模型。
在转换过程中,它要求文件imageNet_sample_val.txt,但我无法在 SDK 或示例目录中的任何位置找到此文件。
我可以从哪里获取imageNet_sample_val.txt文件、或者是否有替代文件/格式用于手动创建文件以运行导入工具?
下面我附加了一个关于错误的文件.  e2e.ti.com/.../pnet_5F00_import.txt

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

    尊敬的 Komal:

     导入文件中的 imageNet_sample_val.txt 路径不正确。  还有其他问题。   下面是一个包含注释的简单导入文件。

    modelType = 2。          对于 ONNX、通常<== 2
    numParamBits = 8       <= Tensor 位
    numFeatureBits = 8      <=内部权重位(除非您有充分的理由,否则不要更改此值)


    inputNetFile =/home/root/model/segformer_simp.onnx  <= ONNX 文件的路径(完整或相对)  
    outputNetFile =“out/tidl_net.bin"  <=“<=生成的工件的位置(目录必须存在)
    outputParamsFile =“out/tidl_io_buff"</s>“


    tidlStatsTool =“/PC_DSP_TEST_dl_algo.out" <=“<=优化和校准中使用的工具的位置(完整或相对)  
    perfSimTool =“/ti_cnperfsim.out"</s>“
    GraphVizTool =“/tidl_graphVisualizer.out"</s>“

    InWidth = 224。           <= Tensor 输入宽度
    InHeight = 224           <= Tensor 输入高电平
    inNumChannels = 3       <= 3 通道 (RGB)
    numFrames = 1
    inFileFormat = 0          <= 0 是压缩图像 (jpg、png)
    inData =“./airshow.jpg"    <=“<=输入图像的位置
    perfSimConfig =“device_config.cfg" <=“<=器件配置的位置(完整或相对路径)
    debugTraceLevel = 0   <=调试 0-4

    此外、在 examples/osrt_python/ort 中开始使用 OSRT 更容易。

    https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-jacinto7/08_00_00_12/exports/docs/tidl_j7_08_00_00_10/ti_dl/docs/user_guide_html/md_tidl_osr_onnxrt_tidl.html

    此致、

    Chris

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

    e2e.ti.com/.../pnet_5F00_import-1.txte2e.ti.com/.../imported_5F00_resultLog.txt


    您好:

    我目前正在尝试将 ONNX 模型导入 TIDL、以便在 TDA4VM 平台上部署。 我使用了 TIDL 导入工具、执行了标准模型导入步骤。 这是我访问过的链接
    https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-jacinto7/07_02_00_06/exports/docs/tidl_j7_01_04_00_08/ti_dl/docs/user_guide_html/md_tidl_model_import.html

    在导入过程中、我遇到了一些错误。 我已从名为的导入过程中附加了日志文件 pnet_import.txt

    尽管存在错误、该工具仍会生成.net.io文件。 然后、我在电路板上部署并运行了模型、但在运行时、它在上失败 图形验证和存储器分配阶段 。 中附加了运行时日志 imported_resultLog.txt

    我想了解:

    1. 什么可能导致图形验证和内存分配失败?

    2. 导入错误是否显示为pnet_import.txt严重错误、或者是否可以安全地忽略这些错误?

    3. 请提供一个 分步指南 正确的构建步骤顺序 适用于:

      • ONNX 模型转换为 TIDL 格式

      • 在电路板上部署和执行

    如果您对如何解决或调试这些问题提供任何指导、我们将不胜感激。

    谢谢你。

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

    尊敬的 Komal:

    1. 什么可能导致图形验证和内存分配失败?

      如果编译不顺利、如果创建了伪影、我就不会信任这些伪影。  警告是可以的、但应该检查完全错误。
    2. 导入错误是否显示为 pnet_import.txt 严重错误、或者是否可以安全地忽略这些错误?

      请参阅上面的。
    3. 请提供一个  分步指南  或  正确的构建步骤顺序  对于:最简单的方法是使用 OSRT。  请参阅: https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-jacinto7/08_00_00_12/exports/docs/tidl_j7_08_00_00_10/ti_dl/docs/user_guide_html/md_tidl_osr_onnxrt_tidl.htmlWhat 您遵循的是 TIDLRT 方法。  它更为复杂、因此、如果您想要轻松启动、请使用 OSRT。

    以下是确保设置 adgeai-tidl-tools 后的步骤。

    1.cd 转 edgeai-tidl-tools/examples/osrt_python/ort

    2. vi ../ model_config.py、并在## onnx 型号### 部分添加:

    “Komal_model":“:create_model_config (
    TASK_TYPE=“Classification",“,</s>、
    Source=dict(
    model_url=“",“,</s>、
    推断形状=真、
    )、
    preproception=dict(
    调整大小=256、
    作物=224、
    data_layout=“NCHW",“,</s>、
    resize_with_pad=False、
    REVERSE_CHANNES=False、
    )、
    Session=dict(
    session_name=“onnxrt",“,</s>、
    model_path=os.path.join ('/path_to/'、“pnet.onnx")“)、
    Input_Mean=[123.675,116116.28,103.53]、
    INPUT_SCALE=[0.017125、0.017507、0.017429]、
    Input_optimization=True、
    )、
    postprocess=dict()、
    extra_info=dict (num_images=numImages、num_class=1000)、
    )、

    3. 编译模型 python3 ./ onnxrt_ep.py -c -m  Komal_model

    4.通过 python3 ./ onnxrt_ep.py -m Komal_model 在主机上运行模型

    这是最简单的入门方法。  在主机上运行模型(在仿真中)后。  将工件从 edgeai-tidl-tools/model-artifacts/Komal_model 复制到您的器件并在那里进行测试。

    此致、

    Chris

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

    HII、

    我正在使用 Processor SDK RTOS 11.0.0.6 中的示例 J721E EVM 和 Ubuntu 18.04 主机上运行。 我正在尝试按照 《TIDL ONNX 运行时集成用户指南》中概述的步骤 、使用 TIDL 执行提供程序 (OSRT) 编译 ONNX 模型。

    根据文档、脚本包括:

    • prepare_model_compliation_env.sh
    • onnxrt_ep.py

    …应位于以下位置:

    ${PSDKRA_PATH}/tidl_xx_xx_xx_xx/ti_dl/test/onnxrt/

    但是、我无法onnxrt/在 SDK 目录结构中找到该目录或任何所需的脚本。 我运行find命令并确认、onnxrt_ep.py并且prepare_model_compliation_env.sh在我安装的路径下的任何位置都不存在:

    /u/new_sdk/RTOS/ti-processor-sdk-rtos-j721e-evm-11_00_00_06/

    请您澄清一下:

    1. 是包含在中的 OSRT(适用于 TIDL 的 ONNX Runtime EP) PSDK RTOS 11.0.0.6 默认情况下?
    2. 如果没有、我可以从哪里获得tidl_08_00_00_10包含onnxrt测试文件夹和相关脚本的正确软件包或子模块(例如)?
    3. ONNX Runtime EP 支持是否需要单独下载?

    谢谢  

    此致、  
    Komal

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

    尊敬的 Komal:

    Ubuntu 18.04 不支持 TIDL。  您只需要 Ubuntu 22.04。  任何其他东西都不起作用。

    此致、

    Chris

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

    HII Chris、  

    其实 Ubuntu 18.04 是一个拼写错误对不起。  

    我们使用的是 Ubuntu 22.04 本身。  
    谢谢  

    此致、  
    Komal

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

    尊敬的 Komal:

    仅当您要重新构建器件固件补丁时、使用 RTOS SDK 才很重要。  使用 edgeai-tidl-tools 实现更快/更简单的成功。   

    请参阅: https://github.com/TexasInstruments/edgeai-tidl-tools

    克隆存储库并运行设备的安装说明。  请确保“source setup.sh“ 正确完成。  然后转到 edgeai-tidl-tools/examples/osrt_python/ort、并按照前面的说明进行操作。  同样、我仅在需要重新构建固件补丁时使用 RTOS SDK。  您可能可以在 RTOS SDK 中为 TIDLRT 执行所有操作、但 edgeai-tidl-tools 更容易。

    此致、

    Chris

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

    HII Chris、  

    同时使用 edgeai-tidl-tools 、我观察到模型导入/导出流仅生成 A 单个二进制文件 (.bin) 完全相同。

    进行推理 C7x-MMA(视觉应用内的 TIDL 运行时) 、接口通常需要 两个单独的文件:net.binparam.bin。 中的演示应用需要这些 Vision Apps 框架 以分别加载网络结构和参数。

    我的问题是:

    • 如何使.bin edgeai-tidl-tools 生成的文件与 Vision Apps 演示应用兼容?

    • 是否有方法将单个代码拆.bin分为net.binparam.bin、或者 Vision Apps/TIDL 运行时中是否有一种更新的机制、该机制现在可与单个组合的二进制文件配合使用?

    • 如果我要使用 Generated.bin with Vision Apps 演示、正确的过程是什么?


      谢谢。


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

    尊敬的 Komal:

    如果编译正确完成、则模型工件目录中将同时存在* net.bin 和* io.bin 文件。

    我看了一下您的一个日志、结果失败了。

    无法打开 tidlStatsTool 文件:/u/new_sdk/RTOS/ti-processor-sdk-rtos-j721e-evm-11_00_00_06/c7x-mma-tidl/tidl_tools/PC_dsp_test_dl_algo.out
    ------------------------ 定点校准迭代[1/1]:-------------------
    无法打开 tidlStatsTool 文件:/u/new_sdk/RTOS/ti-processor-sdk-rtos-j721e-evm-11_00_00_06/c7x-mma-tidl/tidl_tools/PC_dsp_test_dl_algo.out
    ==================== 【量化和校准已完成】====================

    [TIDL Import]【解析器】不受支持:所有张量维度都必须大于零。 对于 tensor p_net/pool1/MaxPool:0、id 9 - Dim 4 为 0 --[tidl_import_common_model_check.cpp、2324]
    [TIDL 导入]【解析器】警告:
    ****************************************************************************
    *网络编译器返回错误或未执行*
    *此型号只能在 PC/主机仿真模式下使用*
    *预计不会在 TARGET/EVM 上工作*
    ****************************************************************************

    您能否将您的 ONNX 模型发送给我、然后我将生成工件?

    Chris