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.

[参考译文] AM67A:为特定的 TIDL 编译模型

Guru**** 2650475 points

Other Parts Discussed in Thread: AM67A

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1590249/am67a-compiling-models-for-specific-tidl

器件型号: AM67A

您好、
我不熟悉 EdgeAI 工作流程、但我尝试编译现有的 深度估算 TI Model Zoo 中的特定模型进行比较 TIDL 版本 11_00_06_00 目标 AM67A 。 我遇到了一些问题、希望获得一些指导。

我想做的事情

我在中添加了以下自定义模型条目
edgeai-tidl-tools/examples/osrt_python/model_configs.py

'de-7300' : create_model_config(
    task_type="depth_estimation",
    source=dict(
        model_url="">software-dl.ti.com/.../fast-depth.onnx",
        infer_shape=True,
    ),
    preprocess=dict(
        resize=256,
        crop=224,
        data_layout="NCHW",
        resize_with_pad=False,
        reverse_channels=False,
    ),
    session=dict(
        session_name="onnxrt",
        model_path=os.path.join(models_base_path , "fast-depth.onnx"),
        input_mean=[123.675, 116.28, 103.53],
        input_scale=[0.017125, 0.017507, 0.017429],
        input_optimization=True,
    ),
    postprocess=dict(),
    extra_info=dict(
        num_images = numImages ,
        num_classes = 1000
    ),
    runtime_options = {
        'advanced_options:inference_mode' : 2,
        'advanced_options:num_cores' : 1,
        'advanced_options:calibration_frames' : 12,
        'advanced_options:calibration_iterations' : 12
    }
)

 

问题

编译完成、但在内部完成
model-artifacts/de-7300/artifacts/
.bin生成任何文件。 相反、我只获得tempDir包含临时.bin文件的。

当我尝试运行这些临时 bin 文件时、它们在运行时失败。

其他问题

我还尝试使用 edgeai-基准测试 但是我找不到一种方法来设置所需的 TIDL 版本 11_00_06_00 、这会导致版本不匹配错误。

问题

  1. 针对特定的 TIDL 版本 (11_00_06_00) 编译 Model Zoo 模型的正确过程是什么?

  2. edgeai-benchmark 是否应该支持手动选择 TIDL 版本、或者它是否应该与工具存储库的内部版本相匹配?

任何指导或示例都将非常有帮助。
谢谢!

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

    您好、Andow、

    我没看到生成了什么、但如果 onnxrt_ep.py 确定 model-artifacts/中的.bin 文件正常 TempDir 将是可运行的工件。  将整个模型工件复制到/home/root/edgeai-tidl-tools.下的 EVM 上  假设版本匹配、您可以在 EVM 上使用 onnxrt_ep.py 运行它们。

    1.在 edgeai-modelzoo 存储库中、 检查 所需版本的分支。

    2.我不完全理解你的问题,但我认为 答案是它应该匹配存储库(将有标签/分支为你的版本) 不要尝试运行其他版本的东西  

    此致、

    Chris  

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

    您好、Andow、

    您是否在主机上重新编译模型并使用模型替换工件?  如果不是、则工件来自旧模型、且模型和配置适用于新模型。  我不知道任何关于您正在查找的存储库,它已经更新了几年。  我怀疑也有一些腐烂的东西。  您必须联系  https://github.com/TexasInstruments-Sandbox/edgeai-demo-monodepth-estimation 存储库的所有者以了解详细信息。

    此致、

    Chris  

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

    是的、我在主机上重新编译模型、并更换了电路板上的整个文件夹。

    这是同一个项目还是他们不同的作者? 看起来他们都使用相同的技术。
    https://dev.ti.com/tirex/explore/content/edge_ai_demos_01_04_06_04/demos/AI_based_Monocular_Depth_Estimation.html#how-to-get-started.
    software-dl.ti.com/.../group_apps_cv_demos_app_sfm.html

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

    您好、Andow、

    您是否尝试过在 TIDLRT 或 OSRT 中运行模型?  如果运行正常、我会将演示的作者添加到此主题。   

    此致、

    Chris  

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

    感谢您的帮助、只需使用 OSRT 检查并发现错误

        "de-7300_onnxrt_fast-depth": create_model_config(
               task_type="depth_estimation",
               source=dict(
                   model_url="">software-dl.ti.com/.../fast-depth.onnx",
                   infer_shape=True,
               ),
               preprocess=dict(
                   resize=[246, 246], 
                   crop=[224, 224],
                   data_layout="NCHW",
                   pad_color=0,
                   resize_with_pad=False,
                   reverse_channels=False,
                   add_flip_image=False, 
               ),
               session=dict(
                   session_name="onnxrt",
                   model_path=os.path.join(models_base_path, "fast-depth.onnx"),
                   target_device="AM67A", 
                   input_mean=[0.0, 0.0, 0.0],
                   input_scale=[0.003922, 0.003922, 0.003922], 
                   input_optimization=False, 
               ),
               postprocess=dict(
                   with_argmax=False, 
               ),
               extra_info=dict(
                   num_images=numImages, 
                   num_classes=1, 
               ),
           ),

    root@8374745b2c72:/home/root/examples/osrt_python/ort# python3 onnxrt_ep.py -m de-7300_onnxrt_fast-depth
    Skipping import of model optimizer
    Available execution providers :  ['TIDLExecutionProvider', 'TIDLCompilationProvider', 'CPUExecutionProvider']
    
    Running 1 Models - ['de-7300_onnxrt_fast-depth']
    
    
    Running_Model :  de-7300_onnxrt_fast-depth  
    
    Process Process-1:
    Traceback (most recent call last):
      File "/usr/lib/python3.10/multiprocessing/process.py", line 314, in _bootstrap
        self.run()
      File "/usr/lib/python3.10/multiprocessing/process.py", line 108, in run
        self._target(*self._args, **self._kwargs)
      File "/home/root/examples/osrt_python/ort/onnxrt_ep.py", line 315, in run_model
        input_image = test_images
    UnboundLocalError: local variable 'test_images' referenced before assignment
    

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

    root@8374745b2c72:/home/root/examples/osrt_python/ort# python3 onnxrt_ep.py -m de-7310_midas-small_onnx
    Skipping import of model optimizer
    Available execution providers :  ['TIDLExecutionProvider', 'TIDLCompilationProvider', 'CPUExecutionProvider']
    
    Running 1 Models - ['de-7310_midas-small_onnx']
    
    
    Running_Model :  de-7310_midas-small_onnx  
    
    libtidl_onnxrt_EP loaded 0x57dd0bfb4f10 
    Final number of subgraphs created are : 1, - Offloaded Nodes - 84, Total Nodes - 84 
    The soft limit is 10240
    The hard limit is 10240
    MEM: Init ... !!!
    MEM: Init ... Done !!!
     0.0s:  VX_ZONE_INFO: Globally Enabled VX_ZONE_INFO
     0.16s:  VX_ZONE_INFO: Globally Enabled VX_ZONE_ERROR
     0.18s:  VX_ZONE_INFO: Globally Enabled VX_ZONE_WARNING
     0.136s:  VX_ZONE_INFO: [ownAddTargetKernelInternal:189] registered kernel vx_tutorial_graph.phase_rgb on target DSP_C7-1
     0.157s:  VX_ZONE_INFO: [ownAddTargetKernelInternal:189] registered kernel vx_tutorial_graph.phase_rgb on target DSP_C7-2
     0.865s:  VX_ZONE_INFO: [tivxPlatformCreateTargetId:169] Added target MPU-0 
     0.902s:  VX_ZONE_INFO: [tivxPlatformCreateTargetId:169] Added target MPU-1 
     0.927s:  VX_ZONE_INFO: [tivxPlatformCreateTargetId:169] Added target MPU-2 
     0.956s:  VX_ZONE_INFO: [tivxPlatformCreateTargetId:169] Added target MPU-3 
     0.983s:  VX_ZONE_INFO: [tivxPlatformCreateTargetId:169] Added target DSP_C7-1 
     0.1019s:  VX_ZONE_INFO: [tivxPlatformCreateTargetId:169] Added target DSP_C7-1_PRI_2 
     0.1045s:  VX_ZONE_INFO: [tivxPlatformCreateTargetId:169] Added target DSP_C7-1_PRI_3 
     0.1068s:  VX_ZONE_INFO: [tivxPlatformCreateTargetId:169] Added target DSP_C7-1_PRI_4 
     0.1090s:  VX_ZONE_INFO: [tivxPlatformCreateTargetId:169] Added target DSP_C7-1_PRI_5 
     0.1118s:  VX_ZONE_INFO: [tivxPlatformCreateTargetId:169] Added target DSP_C7-1_PRI_6 
     0.1153s:  VX_ZONE_INFO: [tivxPlatformCreateTargetId:169] Added target DSP_C7-1_PRI_7 
     0.1172s:  VX_ZONE_INFO: [tivxPlatformCreateTargetId:169] Added target DSP_C7-1_PRI_8 
     0.1202s:  VX_ZONE_INFO: [tivxPlatformCreateTargetId:169] Added target DSP_C7-2 
     0.1223s:  VX_ZONE_INFO: [tivxPlatformCreateTargetId:169] Added target DSP_C7-2_PRI_2 
     0.1243s:  VX_ZONE_INFO: [tivxPlatformCreateTargetId:169] Added target DSP_C7-2_PRI_3 
     0.1298s:  VX_ZONE_INFO: [tivxPlatformCreateTargetId:169] Added target DSP_C7-2_PRI_4 
     0.1318s:  VX_ZONE_INFO: [tivxPlatformCreateTargetId:169] Added target DSP_C7-2_PRI_5 
     0.1338s:  VX_ZONE_INFO: [tivxPlatformCreateTargetId:169] Added target DSP_C7-2_PRI_6 
     0.1364s:  VX_ZONE_INFO: [tivxPlatformCreateTargetId:169] Added target DSP_C7-2_PRI_7 
     0.1387s:  VX_ZONE_INFO: [tivxPlatformCreateTargetId:169] Added target DSP_C7-2_PRI_8 
     0.1414s:  VX_ZONE_INFO: [tivxPlatformCreateTargetId:169] Added target MCU2-0 
     0.1437s:  VX_ZONE_INFO: [tivxPlatformCreateTargetId:169] Added target VPAC_LDC1 
     0.1462s:  VX_ZONE_INFO: [tivxPlatformCreateTargetId:169] Added target VPAC_MSC1 
     0.1488s:  VX_ZONE_INFO: [tivxPlatformCreateTargetId:169] Added target VPAC_MSC2 
     0.1511s:  VX_ZONE_INFO: [tivxPlatformCreateTargetId:169] Added target VPAC_VISS1 
     0.1543s:  VX_ZONE_INFO: [tivxPlatformCreateTargetId:169] Added target CAPTURE1 
     0.1563s:  VX_ZONE_INFO: [tivxPlatformCreateTargetId:169] Added target CAPTURE2 
     0.1586s:  VX_ZONE_INFO: [tivxPlatformCreateTargetId:169] Added target CAPTURE3 
     0.1611s:  VX_ZONE_INFO: [tivxPlatformCreateTargetId:169] Added target CAPTURE4 
     0.1631s:  VX_ZONE_INFO: [tivxPlatformCreateTargetId:169] Added target DISPLAY1 
     0.1653s:  VX_ZONE_INFO: [tivxPlatformCreateTargetId:169] Added target DISPLAY2 
     0.1679s:  VX_ZONE_INFO: [tivxPlatformCreateTargetId:169] Added target CSITX 
     0.1711s:  VX_ZONE_INFO: [tivxPlatformCreateTargetId:169] Added target CSITX2 
     0.1751s:  VX_ZONE_INFO: [tivxPlatformCreateTargetId:169] Added target DMPAC_SDE 
     0.1788s:  VX_ZONE_INFO: [tivxPlatformCreateTargetId:169] Added target DMPAC_DOF 
     0.1831s:  VX_ZONE_INFO: [tivxPlatformCreateTargetId:169] Added target VPAC_FC 
     0.1862s:  VX_ZONE_INFO: [tivxPlatformCreateTargetId:169] Added target MCU1-0 
     0.1865s:  VX_ZONE_INFO: [tivxInit:152] Initialization Done !!!
     0.1870s:  VX_ZONE_INFO: Globally Disabled VX_ZONE_INFO
    
    Saving image to  ../../../output_images/
    
    Saving output tensor to  ../../../output_binaries/
    
     
    Completed_Model :     1, Name : de-7310_midas-small_onnx                          , Total time :     253.18, Offload Time :     253.11 , DDR RW MBs : 0, Output Image File : py_out_de-7310_midas-small_onnx_pexels-olly-762020.jpg, Output Bin File : py_out_de-7310_midas-small_onnx_pexels-olly-762020.bin
     
     
    MEM: Deinit ... !!!
    MEM: Alloc's: 26 alloc's of 25004435 bytes 
    MEM: Free's : 26 free's  of 25004435 bytes 
    MEM: Open's : 0 allocs  of 0 bytes 
    MEM: Deinit ... Done !!!
    


    好的、固定的。  
    是否有模型测试的集成深度估算示例?
    我的视觉应用程序没有 来自运动应用程序的结构...

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

    您好、Andow、

    请在新主题中提出此问题。  这些线程将作为我们知识库的一部分进行搜索、我们希望将它们保留在一个主题中。

    此致、

    Chris