嗨,我正在使用 edgeai-tidl-tools python 示例来转换我的 onx 模型,因为我的模型中有一些不受支持的层。 我的目标是获取可以在 TDA4上部署的 TIDL 格式模型。 是否可以仅使用 edgeai-tidl-tools python 示例来实现该目标、或者需要使用 SDK 等进一步的步骤? 此外、是否有必要为要转换的每个模型准备输入数据?
谢谢!
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.
嗨,我正在使用 edgeai-tidl-tools python 示例来转换我的 onx 模型,因为我的模型中有一些不受支持的层。 我的目标是获取可以在 TDA4上部署的 TIDL 格式模型。 是否可以仅使用 edgeai-tidl-tools python 示例来实现该目标、或者需要使用 SDK 等进一步的步骤? 此外、是否有必要为要转换的每个模型准备输入数据?
谢谢!
是否可以仅使用 edgeai-tidl-tools python 示例来实现这一目标,
是的、不支持的层将在 ARM 内核上运行、支持的层将在目标内核上加速。
Unknown 说:是否需要执行诸如使用 SDK 之类的更多步骤?
请详细说明您想在这里说什么?
是否需要为要转换的每个模型准备输入数据?
在这里讨论校准图像数据集吗?
--
普拉蒂克
感谢您的回复。 我的输出文件仅包含 onnx 模型和 param.yml、因此我想知道我应该执行任何其他步骤。

在这里讨论校准图像数据集吗?
是的、就像这里的图片。 我的一些模型使用.raw 作为输入、可能需要在我的代码中进行一些修改

首先、
您编译了模型吗? 想知道这里的输出是什么吗? (请注意、发布模型编译后、您将获得.bin 文件)
我们建议研究我们提供的自定义模型编译服务、基于 OSRT Python 的示例应该是不错的起点。
链接: https://github.com/TexasInstruments/edgeai-tidl-tools
如上所述、校准图像集必须为.JPG。 对于星型、您可以使用标准图像集、确保编译流程是正确的发布、以便您可以添加项目特定的图像。
——
普拉蒂克
首先、我使用示例模型运行 python3 onnxrt_ep.py -c、然后接收错误 AttributeError:'InferenceSession'对象没有属性'get_TI_benchmark_data'。
$ python3 onnxrt_ep.py -c
可用的执行提供程序: ['CPUExecutionProvider']
运行3个模型-["cl-ort-resnet18-v1"、"ss-ort-deeplabv3lite_mobilenetv2"、"od-ort-ssd-lite_mobilenetv2_FPN"]
Running_Model : cl-ort-resnet18-v1
2023年08月30日13:59:41.886917739 [W:onnxruntime:、graph.cc:3543 CleanUnusedInitializersAndNodeArgs] Removing initializer 'layer4.0.downsample.1.num_batches_traced'。 它不被任何节点使用、应从模型中删除。
2023年08月30日13:59:41.886949872 [W:onnxruntime:、graph.cc:3543 CleanUnusedInitializersAndNodeArgs] Removing initializer 'layer4.0.bn2.num_batches_traced'。 它不被任何节点使用、应从模型中删除。
2023年08月30日13:59:41.886959369 [W:onnxruntime:、graph.cc:3543 CleanUnusedInitializersAndNodeArgs] Removing initializer 'layer4.1.bn2.num_batches_traced'。 它不被任何节点使用、应从模型中删除。
2023年08月30日13:59:41.886968699 [W:onnxruntime:、graph.cc:3543 CleanUnusedInitializersAndNodeArgs] Removing initializer 'layer2.0.bn1.num_batches_traced'。 它不被任何节点使用、应从模型中删除。
2023年08月30日13:59:41.886978354 [W:onnxruntime:、graph.cc:3543 CleanUnusedInitializersAndNodeArgs] Removing initializer 'layer1.1.bn2.num_batches_traced'。 它不被任何节点使用、应从模型中删除。
2023年08月30日13:59:41.886986088 [W:onnxruntime:、graph.cc:3543 CleanUnusedInitializersAndNodeArgs] Removing initializer 'layer3.0.bn2.num_batches_traced'。 它不被任何节点使用、应从模型中删除。
2023年08月30日13:59:41.886994853 [W:onnxruntime:、graph.cc:3543 CleanUnusedInitializersAndNodeArgs] Removing initializer 'layer1.0.bn2.num_batches_traced'。 它不被任何节点使用、应从模型中删除。
2023年08月30日13:59:41.887002689 [W:onnxruntime:、graph.cc:3543 CleanUnusedInitializersAndNodeArgs] Removing initializer 'layer1.1.bn1.num_batches_traced'。 它不被任何节点使用、应从模型中删除。
2023年08月30日13:59:41.887010527 [W:onnxruntime:、graph.cc:3543 CleanUnusedInitializersAndNodeArgs] Removing initializer 'layer2.0.downsample.1.num_batches_traced'。 它不被任何节点使用、应从模型中删除。
2023年08月30日13:59:41.887025392 [W:onnxruntime:、graph.cc:3543 CleanUnusedInitializersAndNodeArgs] Removing initializer 'layer1.0.bn1.num_batches_traced'。 它不被任何节点使用、应从模型中删除。
2023年08月30日13:59:41.887033408 [W:onnxruntime:、graph.cc:3543 CleanUnusedInitializersAndNodeArgs] Removing initializer 'layer2.0.bn2.num_batches_traced'。 它不被任何节点使用、应从模型中删除。
2023年08月30日13:59:41.887041167 [W:onnxruntime:、graph.cc:3543 CleanUnusedInitializersAndNodeArgs] Removing initializer 'layer4.1.bn1.num_batches_traced'。 它不被任何节点使用、应从模型中删除。
2023年08月30日13:59:41.887048805 [W:onnxruntime:、graph.cc:3543 CleanUnusedInitializersAndNodeArgs] Removing initializer 'layer4.0.bn1.num_batches_traced'。 它不被任何节点使用、应从模型中删除。
2023年08月30日13:59:41.887057007 [W:onnxruntime:、graph.cc:3543 CleanUnusedInitializersAndNodeArgs] Removing initializer 'layer3.1.bn2.num_batches_traced'。 它不被任何节点使用、应从模型中删除。
2023年08月30日13:59:41.887065078 [W:onnxruntime:、graph.cc:3543 CleanUnusedInitializersAndNodeArgs] Removing initializer 'layer2.1.bn2.num_batches_traced'。 它不被任何节点使用、应从模型中删除。
2023年08月30日13:59:41.887072849 [W:onnxruntime:、graph.cc:3543 CleanUnusedInitializersAndNodeArgs] Removing initializer 'bn1.num_batches_traced'。 它不被任何节点使用、应从模型中删除。
2023年08月30日13:59:41.887081862 [W:onnxruntime:、graph.cc:3543 CleanUnusedInitializersAndNodeArgs] Removing initializer 'layer2.1.bn1.num_batches_traced'。 它不被任何节点使用、应从模型中删除。
2023年08月30日13:59:41.887090648 [W:onnxruntime:、graph.cc:3543 CleanUnusedInitializersAndNodeArgs] Removing initializer 'layer3.0.bn1.num_socs_tracked'。 它不被任何节点使用、应从模型中删除。
2023年08月30日13:59:41.887099232 [W:onnxruntime:、graph.cc:3543 CleanUnusedInitializersAndNodeArgs] Removing initializer 'layer3.0.downsample.1.num_batches_traced'。 它不被任何节点使用、应从模型中删除。
2023年08月30日13:59:41.887107099 [W:onnxruntime:、graph.cc:3543 CleanUnusedInitializersAndNodeArgs] Removing initializer 'layer3.1.bn1.num_batches_traced'。 它不被任何节点使用、应从模型中删除。
回溯(最近的调用最后):
文件"/media/tsingyueliu/1e871d72-bcd5-485f-99b4-e0a85ce8bf1d/edgeai-tidl-tools/examples/osrt_python/ort/onnxrt_ep.py "、第281行、位于
RUN_MODEL (model、mIdx)
文件/media/tsingyueliu/1e871d72-bcd5-485f-99b4-e0a85ce8bf1d/edgeai-tidl-tools/examples/osrt_python/ort/onnxrt_ep.py、第201行、位于 run_model 中
imgs、output、proc_time、sub_graph_time、height、 宽度 = INFER_IMAGE (Sess、INPUT_IMAGES、CONFIG)
文件/media/tsingyueliu/1e871d72-bcd5-485f-99b4-e0a85ce8bf1d/edgeai-tidl-tools/examples/osrt_python/ort/onnxrt_ep.py、第121行、位于 infer_image 中
copy_time、sub_graphs_proc_time、totaltime = get_benchmark_output (sess)
文件"get_benchmark_output "/media/tsingyueliu/1e871d72-bcd5-485f-99b4-e0a85ce8bf1d/edgeai-tidl-tools/examples/osrt_python/ort/onnxrt_ep.py "、第70行
benchmark_dict =解释器.get_TI_benchmark_data ()
AttributeError:'InferenceSession'对象没有属性'get_TI_benchmark_data'
然后我注释了这些行,代码工作,但我没有收到 bin 文件。
感谢您的回复、我使用的是 rel_8_6版本、SOC=am62。 在我替换 python 之后
从3.9到3.6、然后再次设置 env、python3 onnxrt_ep.py -c 可以运行而不出现任何错误。 但是、输出文件夹中仍然只有 onnx 文件和 param.YAML。 我的环境中是否仍有一些问题?

这似乎有问题。
例如:如果你编译 cl-ort-resnet18-v1生成的工件应该看起来像
191_tidl_io_1.bin 191_tidl_net.bin allowedNode.txt onnxrtMetaData.txt param.YAML resnet18_opset9.onnx tempDir
尽管如此、请设置 Docker 容器并告知我们是否仍然存在此问题(我们建议仔细阅读文档)
--
普拉蒂克
github.com/.../advanced_setup.md我尝试按照这个文档中的步骤操作、但是在运行 setup.sh 时遇到一些错误。
Version = master、SOC = am68a、我是否应该在这些步骤之前执行其他设置?
正在收集 github.com/.../tidl-j7.zip (来自-r ./requirements_pc.txt (第4行)
[/报价]
下载 github.com/.../tidl-j7.zip
| 11.4MB 1.2MB/s 0:00:09
正在安装构建依赖项... 完成
正在获取构建车轮的要求... 错误
错误:子进程已退出并出错
×获得制造车轮的要求未成功运行。
│退出代码:1
╰─>[18行输出]
回溯(最近的调用最后):
文件"/usr/lib/python3/dist-packages/pip/_vendor/pep517/in_process/_in_process.py "、第363行、位于
主要()
文件"/usr/lib/python3/dist-packages/pip/_vendor/pep517/in_process/_in_process.py "、主代码中的第345行
json_out['refturn_val']= hook (**HOOK_INPUT['kwargs'])
文件"get_requires_for_build_wheel 中的第130行"/usr/lib/python3/dist-packages/pip/_vendor/pep517/in_process/_in_process.py "
返回挂钩(CONFIG_SETTINGS)
get_requirements_for_build_wheel 中的文件/usr/lib/python3/dist-packages/setuptools/build_meta.py 第162行
返回 self._get_build_requires(
_get_build_requires 中的文件"/usr/lib/python3/dist-packages/setuptools/build_meta.py "、第143行
self.run_setup ()
文件"Run_setup "中的第267行"/usr/lib/python3/dist-packages/setuptools/build_meta.py "
super (_BuildMetaLegacyBackend、
文件"run_setup "中的第158行"/usr/lib/python3/dist-packages/setuptools/build_meta.py "
exec(compile (code、__file__、'exec')、locales())
文件"setup.py"、第86行、位于
断言 CMAKE、"找不到"cmake"可执行文件!"
AssertionError:找不到"cmake"可执行文件!
[输出结束]
注意:此错误源于子流程、可能不是 pip 问题。
错误:子进程已退出并出错
×获得制造车轮的要求未成功运行。
│退出代码:1
╰─>请参阅上文了解输出。
注意:此错误源于子流程、可能不是 pip 问题。
要求已满足: pybind11[global] in /usr/local/lib/python3.10/dist-packages (2.11.1)
已满足要求:/usr/local/lib/python3.10/dist-packages 中的 pybind11-global=2.11.1 (来自 pybind11[global])(2.11.1)
警告:以"root"用户身份运行 pip 可能导致权限损坏和系统软件包管理器的行为冲突。 建议改用虚拟环境: pip.pypa.io/.../venv
正在安装 python osrt 软件包...
警告:以"root"用户身份运行 pip 可能导致权限损坏和系统软件包管理器的行为冲突。 建议改用虚拟环境: pip.pypa.io/.../venv
警告:以"root"用户身份运行 pip 可能导致权限损坏和系统软件包管理器的行为冲突。 建议改用虚拟环境: pip.pypa.io/.../venv
警告:以"root"用户身份运行 pip 可能导致权限损坏和系统软件包管理器的行为冲突。 建议改用虚拟环境: pip.pypa.io/.../venv
警告:以"root"用户身份运行 pip 可能导致权限损坏和系统软件包管理器的行为冲突。 建议改用虚拟环境: pip.pypa.io/.../venv
正在下载 AM68A SOC 的 tidl 工具...
Bash: wget:找不到命令
tar (子项):tidl_tools.tar.gz:无法打开:没有这样的文件或目录
tar (子级):错误不可恢复:现在退出
TAR:儿童返回状态2
tar:错误不可恢复:立即退出
Bash: CD: tidl_tools:没有这样的文件或目录
Bash: wget:找不到命令
tar: gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu.tar.xz : cannot open : no such file or directory
tar:错误不可恢复:立即退出
Bash: wget:找不到命令
chmod:无法访问"ti_cgt_c7000_3.1.0.sts_linux-x64_installer.bin":没有此类文件或目录
Bash:./ti_cgt_c7000_3.1.0.sts_linux-x64_installer.bin:没有此类文件或目录
安装: onnxruntime
Bash: wget:找不到命令
tar: onnx_1.7.0_x86_64 _u22.tar.gz:无法打开:没有这样的文件或目录
tar:错误不可恢复:立即退出
Bash:cd:onnx_1.7.0_x86_u22:没有这样的文件或目录
rm:无法删除"onnx_1.7.0_x86_u22.tar.gz":没有这样的文件或目录
安装:tflite_2.8
Bash: wget:找不到命令
tar: tflite_2.8_x86_u22.tar.gz:无法打开:没有这样的文件或目录
tar:错误不可恢复:立即退出
tar: tflite_2.8_x86_u22.tar.gz:无法打开:没有这样的文件或目录
tar:错误不可恢复:立即退出
rm:无法删除"tflite_2.8_x86_u22.tar.gz":没有这样的文件或目录
安装:OpenCV
Bash: wget:找不到命令
tar: OpenCV_4.2.0_x86_64 _u22.tar.gz:无法打开:没有这样的文件或目录
tar:错误不可恢复:立即退出
rm:无法删除"OpenCV_4.2.0_x86_u22.tar.gz":没有这样的文件或目录
安装:DLR
Bash: wget:找不到命令
tar: dlr_1.10.0_x86_u22.tar.gz:无法打开:没有这样的文件或目录
tar:错误不可恢复:立即退出
rm:无法删除"dlr_1.10.0_x86_u22.tar.gz":没有这样的文件或目录