主题中讨论的其他器件:AM69A
工具/软件:
尊敬的专家:
请检查以下链接中的问题并建议如何解决。
在使用 TIDL 的 AM69A 上部署自定义 iResNet101_Ada 模型时遇到·问题#101·TexasInstruments/edgeai-tidl-tools
谢谢你。
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.
工具/软件:
尊敬的专家:
请检查以下链接中的问题并建议如何解决。
在使用 TIDL 的 AM69A 上部署自定义 iResNet101_Ada 模型时遇到·问题#101·TexasInstruments/edgeai-tidl-tools
谢谢你。
好的、Chris、
我目前正在努力使用 TensorFlow Lite 和 TIDL 在 AM69A 平台上部署一个自定义的 iresnet101_ada 模型。 我使用预编译的模型成功运行了提供的推理示例、但在使用自己的模型时遇到了问题。
问题摘要:
来自我的自定义 iresnet101_ada 模型的编译工件包含两个子图、不会生成 allowedNode.txt 文件。
使用 test_tflite.py 运行推理时、我收到以下错误消息:
VX_ZONE_ERROR: [ownNodeKernelInit:604] Target kernel, TIVX_CMD_NODE_CREATE failed for node TIDLNode VX_ZONE_ERROR: [ownNodeKernelInit:606] If the target callbacks have been registered, please ensure no errors are occurring within the create callback of this kernel VX_ZONE_ERROR: [ownGraphNodeKernelInit:690] kernel init for node 0, kernel com.ti.tidl:1:1 ... failed !!! VX_ZONE_ERROR: [ TIDL subgraph Identity ] Graph verify failed TIDL_RT_OVX: ERROR: Verify OpenVX graph failed
系统日志表明已在354个节点中委派354个节点、这表明模型已完全卸载到 TIDL。
问题:
子图问题:为什么我的模型生成两个子图而不是一个子图? 是否有办法在 TIDL 编译中强制使用单个子图?
缺少 allowedNode.txt:编译过程不会生成 allowedNode.txt。 这是否表明模型分区或不受支持的图层存在问题?
图形初始化失败:日志提到节点 TIDLNode 的 TIVX_CMD_NODE_CREATE 失败。 如何进一步调试? iresnet101_ada 等模型是否需要特定的 TIDL 设置?
建议的调试步骤:我应该遵循哪些步骤来正确验证和调试该模型的 TIDL 编译和推理流水线?
其他信息:
我使用了 TensorFlow Lite 的标准 TIDL 编译流程。
原始模型是经过修改的 iResNet101架构、针对112x112输入图像进行了训练。
我感谢您在解决这些问题方面提供的任何指导。
链接头文件: TI 问题- Google Drive
谢谢你。
您好、Hieu、
您使用的是哪个版本的 TIDL?
子图形问题:每次在 ARM 核心上处理节点时、都会创建一个新的子节点。 请检查任何不受支持的图层。
图初始化失败:这可能是许多事情。 请尝试简单的标准 ONNX 模型(如 resnet18或您知道运行的任何模型)并查看 其是否运行。 我已经在 SD 卡损坏时看到了这一点。 这是为了测试您的 env 是否良好。
建议的调试步骤: https://github.com/TexasInstruments/edgeai-tidl-tools/blob/master/docs/tidl_osr_debug.md。 更具体地说、我建议在 osrt_python 下运行您的模型。 这是成功的最快途径。
尝试:首先在 examples/osrt_python/ort 中。 您需要 先在 model_config.py 中的 osrt_python/中添加模型。 然后运行 python3 ./onxxrt_ep.py -d -m 模型
就会得到一个常数错误。 然后在 examples/osrt_python/advanced_examples/unit_tests_validation/ort 中尝试相同的操作、这将生成大小正确的随机输入张量。
Chris
您好、Chris、
我正在使用 TIDL 版本 10_01_04_00 。
我已使用命令 python3 tflrt_delegate.py 测试了运行模型、如下图所示、并已成功执行。
检查后、我发现编译时就是该层 model_102/model.pcompat.v1.transpose_49/transposal tf 不支持。 因此,我将它添加到 deny_list:layer_type 以防止此层在上运行 C7x-MMA 。 但是、错误仍然存在。
您能看一下 graphvizInfo.txt 文件在下面?
谢谢!
您好、Chris、
请在以下链接上查看型号:
yolov8s_human_detect_9out.onnx - Google 云端硬盘
谢谢你
您好、Hieu、
我已被分配来查看您的模型、我想确认您已实施兼容性表的注释部分中提到的额外 c7x 固件补丁。 https://github.com/TexasInstruments/edgeai-tidl-tools/blob/master/docs/version_compatibility_table.md
我会添加我遇到的任何问题或说明。
此致、
Christina
尊敬的 Hung:
只有命令行的编译日志才会工作。 对于配置文件、在 osrt_python 目录下的 model_configs 中、有我们要请求的配置。
另外、他们可以在 advanced_examples 下尝试这一点吗? 这可以通过相同的路径找到、但从 osrt_python 转到 advanced_examples -> unit_tests_validation 。 同样的情况,但我已经看到这运行更好. 他们是否也可以在 Docker 环境中尝试、以便不存在依赖关系?
此致、
Christina
您好、Chris、
请在以下链接中检查您的申请文件:
谢谢。
您好、Hieu、
在 advanced_examples 下、我能够运行您的模型、而不会出现任何挂起或错误。 我附上了我生成的工件、其中包括1个子图以及运行推理时收到的输出。
e2e.ti.com/.../arrow_5F00_model_5F00_results.zip
有关如何运行自定义模型的文档、请参阅此链接、该链接将详细说明:github.com/.../README.md
我还将列出我采取的步骤、因为您使用的方法缺少一些正确运行模型的步骤。 在 OSRT 上运行时、您可以使用两个流程、具体取决于您所使用的模型类型(TfLite 与 ONNX)。 在这种情况下、您将使用 ONNX、因此您将使用的流程也属于 ONNX (在 TIDL 下针对 Onnx Runtime 也标记为 ORT)
第一步是确保 OSRT 可以为您的模型找到并正确生成伪影。
我用于此目的的位置和命令如下所示。 我是在 edgeai-tidl-tools 的 Docker 下完成的。 您也可以仅在"examples"下运行、不使用 advanced_examples、但我发现 advanced_examples 更易于使用。
- cd home/root/examples/osrt_python/advanced_examples/unit_tests_validation
- vi common_utils.py
-在第94行周围,您将看到 models_configs 和##onnx 下的一些示例模型。 我在此处为您的模型添加了一个配置、并更改了 model_path 以反映我保留您的模型的位置。
"箭头":{
'model_path':os.path.join ('../../../../../models/Arrow '、'resnet101.onnx')、
'source':{model_url':'mmummy','opt': true},# URL 不相关,如果模型存在于指定的路径中
'num_images':numImages,
'TASK_TYPE':'CLASS'
}、
-按照自述文件中的说明创建 onnx 模型所需的目录。
对于 onnx 模型、mkdir outputs/output_ref/onnx
对于 onnx 模型、mkdir outputs/output_test/onnx
- CD ort/
- vi onnxrt_ep.py
-255行周围,你会看到"models =[默认模型名称]。 更改名称、使其成为模型的名称。 在我的情况下,它是
模型=['arrow']
-要编译您的工件,请运行 python3 ./ onnxrt_ep.py -c
-要运行推理,请运行 python3 ./ onnxrt_ep.py
-模型工件可以在之前的 unit_tests_validation 目录中找到,该目录将生成您编译的工件。
-对于输出,outputs/output_test/onnx 目录,您从自述文件中创建的将有输出文件。
如果您有任何问题或对我分享的任何说明感到困惑、请告诉我。 如果我错过了主要问题、请告诉我。
此致、
Christina
你好 Christina Kuruvilla 我有嵌入工程师在 CMC 公司,我已经完成了完整的 resnet101.onnx 在开发套件 AM69A 上,总时间: 526.52
1、 总时间是多少?
2. 如何在 AM69A 上检查时间推理测试 ResNet 101?
尊敬的 Le:
请为此创建一个新的 E2E 帖子、因为这是一个与此线程的问题不同的问题、该问题与导致缺少 allowedNode.txt 的编译相关。
我们将每个 E2E 限制为一个主题、因此关于推理时间的这个新问题值得一来。 这是针对我们自己的组织、因此有类似问题的其他人可以快速参考答案。
如果我已经回答了原始问题、并且问题已解决、我们可以关闭此主题并转到新主题。
此致、
Christina
你好 Christina Kuruvilla ,
我已创建 与上述问题相关的新案例、请帮助我检查它、
https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1510477/processor-sdk-am69a-processor-sdk-am69a-issue-deploying-custom-iresnet101-model-self-trained-on-am69a-with-tidl