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.

[参考译文] TMS320F28388D:使用适用于 C2000的 edgeAI Studio 部署神经网络模型(通过 Pytorch 导出自己的 ONNX 文件)

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1470025/tms320f28388d-deploy-neural-network-model-from-my-own-onnx-file-export-by-pytorch-using-edgeai-studio-for-c2000

器件型号:TMS320F28388D
Thread 中讨论的其他器件:C2000WARE

工具与软件:

您好!

我的工程需要在 C2000器件上部署 AI 模型、我使用 Pytorch 训练并生成了模型 、并导出到 ONNX 文件。 但我不知道如何将此自定义 ONNX 文件上传到 Edge AI Studio 中、生成在 C2000器件上部署的 C 代码(工件)、比如一些示例电机电弧故障

您能引导我吗?

谢谢。

长整型10

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

    嗨、长!

    从您的声明中、我假设您使用的是您自己的 Pytorch 培训环境(而不是 TI 的 modelmaker 或 Edge AI Studio)。

    您无需将 onnx 上传到 Edge AI Studio、还有其他2种方法。

    选项1:(快速、推荐)如果您知道将模型编译为二进制时需要提供哪些编译器选项、则可以直接使用神经网络编译器 (请参阅 文档)。 此处提供了编译器选项的示例、您也可以将其与 C2000Ware 配合使用。  

    选项2:(很长)如果您不知道需要提供哪些编译器选项、则必须安装 TI 的 Tiny ML Tensorlab 、然后按照 Tiny ML Modelmaker 的步骤2中的说明 设置存储库、最后使用它来 编译模型

    上述两个选项都创建了一个 mod.a、可以将其用于 CCS 工程中、以进行进一步的应用开发。

    谢谢!

    Adithya

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

    尊敬的 Adithya:

    感谢您的支持、

    是的、我正在使用我自己的 Pytorch 培训环境、

    我按照选项1的指南中的步骤操作。 但在构建模型时、我会收到一些错误:

    $ tvmc compile --target="c、ti-npu type=soft"--target-c-mcpu=c28 ./sine_model.onnx -o artifacts_c28/mod.A --cross-compiler="cl2000"--cross-compiler-options="$CL2000_options"
    回溯(最近的呼叫最后):
    文件"C:\Users\Phong Doi Khong\AppData\Local\Programs\Python310\lib\site-packages\TVM\_FFI\registry.py"、第29行、位于中
    从._cy3.core import _register_object、_get_object_type_index
    ImportError:当导入核心时 DLL 加载失败:找不到指定的过程。

    在处理上述异常期间、发生了另一个异常:

    回溯(最近的呼叫最后):
    在_run_module_as_main 中、文件"C:\Users\Phong Doi Khong\AppData\Local\Programs\Python310\lib\runpy.py"第196行
    返回_run_code (code、main_globals、None、
    在_run_code 中、文件"C:\Users\Phong Doi Khong\AppData\Local\Programs\Python310\lib\runpy.py"第86行
    EXEC (code、run_globals)
    文件"C:\Users\Phong Doi Khong\AppData\Local\Programs\Python310\Scripts\tvmc.exe\__main_.py"中第4行
    文件"C:\Users\Phong Doi Khong\AppData\Local\Programs\Python310\lib\site-packages\tvm\_init_.py"中第26行
    从._FFI.base 导入 TVMError、__version__、_Runtime_only
    文件"C:\Users\Phong Doi Khong\AppData\Local\Programs\Python310\lib\site-packages\TVM\_FFI\_init_.py"、第29行、位于中
    从.registry import register_object、register_func、register_extension
    文件"C:\Users\Phong Doi Khong\AppData\Local\Programs\Python310\lib\site-packages\TVM\_FFI\registry.py"、第36行、位于中
    从._ctypes.object 导入_register_object、_get_object_type_index
    文件"C:\Users\Phong Doi Khong\AppData\Local\Programs\Python310\lib\site-packages\tvm\_ffi\_ctypes\object.py"、第21行、请参阅
    从.type 中导入 ArgTypeCode、return_switch、C_TO_PY_ARG_SWITCH、_wrap_arg_func
    文件"C:\Users\Phong Doi Khong\AppData\Local\Programs\Python310\lib\site-packages\tvm\_ffi\_ctypes.py"、第22行、如所示
    从..runtime_ctypes 导入 TVMByteArray、ArgTypeCode 和 Device
    文件"C:\Users\Phong Doi Khong\AppData\Local\Programs\Python310\lib\site-packages\tvm\_ffi\runtime_ctypes.py"、第64行、如所示
    类数据类型(ctypes.structure):
    数据类型中的文件"C:\Users\Phong Doi Khong\AppData\Local\Programs\Python310\lib\site-packages\tvm\_ffi\runtime_ctypes.py"第88行
    np.dtype (np.float_):"float64"、
    文件"C:\Users\Phong Doi Khong\AppData\Local\Programs\Python310\lib\site-packages\NumPy\__init_.py"、第413行、位于__getattr__中
    提升 AttributeError(
    AttributeError:`np.float_`已在 NumPy 2.0版本中删除。 改用`NP.float64`。 您的意思是:'float16'?

    我安装 python 3.10、pytorch 2.6.0。

    我不知道接下来会做什么、您能帮我解决这个问题吗?

    BRS

    谢谢

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

    您是否可以卸载当前的 NumPy (pip 卸载 NumPy)并执行 pip 安装 NumPy==1.26.3并让我知道它是否正常工作?

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

    谢谢!

    我安装了 NumPy 1.26.3、但编译后仍然显示:

    未安装软件包"onnx"。 提示:"PIP INSTALL tlcpack[tvmc]"。

    我可以试一下哪个版本的 onnx?

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

    ONNx 1.16.1.
    onnxoptimizer 0.3.13
    onxruntime 1.19.0
    仿真0.4.36

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

    您能准确地指导我安装命令吗?

    PIP INSTALL ONnx=1.16.1或 Pip INSTALL TORCH ONnx==1.16.1?

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

    PIP INSTALL ONnx=1.16.1 onnxoptimizer=0.3.13 onnxruntime=1.19.0 onnxsim==0.4.36   

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

    谢谢、运行以下命令时没有错误: tvmc compile --target="c、ti-npu type=soft"--target-c-mcpu=c28 ./sine_model.onnx -o artifes_c28/mod.A --cross-compiler="cl2000"--cross-compiler-options="$cl2000_options"

    但我看不到生成的任何文件(mod.a, tvmgen_default.h ... )、在哪里找到它们?  

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

    我假设你给了你的< 模型路径>  而不是./sine_model.onnx 和 <output_directory> 而不是 伪影_c28 /mod.A 命令。 mod.a 和 tvmgen_default.h 应该出现在您给出的 output_dir 中。 如果您在那里找不到它们、请让 NME 了解您在输出屏幕上找到的内容的更多详细信息

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

    我在桌面上的 Python 文件夹中没有看到任何生成的文件、

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

    请删除 device_name 变量中的<>、因为它应该只是 f2838x。

    另外、您是否有./sin_model.onnx、如果没有的话、请提供您模型的 onnx 路径。 假设您已安装 cl2000编译器。

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

    是的、我在 PC 的桌面上使用 forder Python 中的 sine_model.onnx 文件、还可以通过 CCS12.7使用 cl2000编译器  

      

    我在桌面上的 Python 文件夹

    artifacts_c28中不生成任何内容

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

    您可以尝试一下吗

    $env:Tinie_compile_debug=1

    $env:TINPU_COMPILE_DEBUG=1

    然后重新运行命令。 这不会解决您的问题、但会给出调试语句

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

    我试过,但没有显示 在这里

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

    我卸载所有的环境和软件包、重新安装所有、然后运行命令  

    tvmc compile --target="c、ti-npu type=soft".\sine_model.onnx --target-c-mcpu=c28 -o artifiles_c28/mod.A --cross-compiler="cl2000"--cross-compiler-opt-opt-subsections="$env:c2000_device_fpu

    现在、我可以生成一些文件.h 和.c、但仍然没有 mod.A 文件、下面出现警告和错误:

    警告:autotvm:未调整一个或多个操作员。 请对模型进行调优以实现更好的性能。 使用调试日志记录级别查看更多详细信息。
    回溯(最近的呼叫最后):
    在_run_module_as_main 中、文件"C:\Users\Phong Doi Khong\AppData\Local\Programs\Python310\lib\runpy.py"第196行
    返回_run_code (code、main_globals、None、
    在_run_code 中、文件"C:\Users\Phong Doi Khong\AppData\Local\Programs\Python310\lib\runpy.py"第86行
    EXEC (code、run_globals)
    文件"C:\Users\Phong Doi Khong\AppData\Local\Programs\Python310\Scripts\tvmc.exe\__main_.py"中第7行
    文件"C:\Users\Phong Doi Khong\AppData\Local\Programs\Python310\lib\site-packages\tvm\driver\tvmc\main.py"、第131行
    sys.exit (_main (sys.argv[1:])
    在_main 中、文件"C:\Users\Phong Doi Khong\AppData\Local\Programs\Python310\lib\site-packages\tvm\driver\tvmc\main.py"第119行
    返回 args.func (args)
    drive_compile 中的文件"C:\Users\Phong Doi Khong\AppData\Local\Programs\Python310\lib\site-packages\tvm\driver\tvmc\compiler.py"第216行
    compile_model (
    compile_model 中的文件"C:\Users\Phong Doi Khong\AppData\Local\Programs\Python310\lib\site-packages\tvm\driver\tvmc\compiler.py"第533行
    package_path = tvmc_model.export_package(.
    export_package 中的文件"C:\Users\Phong Doi Khong\AppData\Local\Programs\Python310\lib\site-packages\tvm\driver\tvmc\model.py"第352行
    package_path = self.export_classic_format (
    在 export_classic_format 中、文件"C:\Users\Phong Doi Khong\AppData\Local\Programs\Python310\lib\site-packages\tvm\driver\tvmc\model.py"第287行
    executor_factory.get_lib().export_LIBRARY (
    export_library 中的文件"C:\Users\Phong Doi Khong\AppData\Local\Programs\Python310\lib\site-packages\tvm\runtime\tmodule.py"第636行
    返回 fcompile (file_name、files、**kwargs)
    fcompile 中的文件"C:\Users\Phong Doi Khong\AppData\Local\Programs\Python310\lib\site-packages\tvm\contrib\cc.py"第411行
    compile_func (输出、对象+ add_files、选项=all_options、** kwargs)
    create_static 中的文件"C:\Users\Phong Doi Khong\AppData\Local\Programs\Python310\lib\site-packages\tvm\contrib\cc.py"第142行
    _windows_compile (obj_f、[src_f]、options、compile_cmd=cc)
    文件"C:\Users\Phong Doi Khong\AppData\Local\Programs\Python310\lib\site-packages\tvm\contrib\cc.py"、第474行、位于_windows_compile 中
    _linux_compile (输出、对象、选项、compile_cmd、cwd、 ccache_env)
    在_linux_compile 中、文件"C:\Users\Phong Doi Khong\AppData\Local\Programs\Python310\lib\site-packages\tvm\contrib\cc.py"、第468行
    提升运行时错误(msg)
    运行时错误:编译错误:
    >>警告:指定了目标文件、但未启用链接
    [Tinie_soft.cc]
    "C:\Users\Phong Doi Khong\AppData\Local\Programs\Python310\Lib\site-packages\tvm\3rdparty\tinie-api/soft/tinie_soft.cc" src、第68行:致命错误:无法打开源文件"soft/inc/tinie_soft.h"
    1编译"C:\Users\Phong Doi Khong\AppData\Local\Programs\Python310\Lib\site-packages\TVM\3rdparty\tinie-api/soft/tinie/tinie_soft.cc" src 时检测到灾难性错误。
    编译已终止。

    >>编译失败

    c2000 -c -o tinie_drive.obj C:\Users\phong Doi Khong\AppData\Local\Programs\Python310\lib\site-packages\tvm\3rdparty\tinie-api/soft/common/tinie_tinie_soft.cc --float_support=fpu64 src --abi IC IC Ware_Motor IC Ware_Motor IC:\Users\Phong Doi Khong\AppData\Local\Programs\Python310\lib\site-packages\tvm\3rdparty\tinie-API -pl IC:\Users\Phong Doi Khong\AppData\Local\Programs\Python310\lib\site-packages\TVM\standalon_crt\include

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

    您可以尝试使用 C2000Ware 5.04而不是电机控制 SDK 5.03一次吗? 请记住 再次设置 C2000ware_path 环境变量

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

    我尝试了 C2000Ware 5.04、但上面仍然有相同的错误

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

    这里的主要问题是:

    >>警告:指定了目标文件、但未启用链接
    [Tinie_soft.cc]
    "C:\Users\Phong Doi Khong\AppData\Local\Programs\Python310\Lib\site-packages\tvm\3rdparty\tinie-api/soft/tinie_soft.cc" src、第68行:致命错误:无法打开源文件"soft/inc/tinie_soft.h"
    1编译"C:\Users\Phong Doi Khong\AppData\Local\Programs\Python310\Lib\site-packages\TVM\3rdparty\tinie-api/soft/tinie/tinie_soft.cc" src 时检测到灾难性错误。
    编译已终止。

    >>编译失败

    你能不能给我建议一个解决办法?

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

    长、当任何路径中都存在空间时、存在电流限制会很棘手。 我看到、由于您的用户名有空格、因此会出现错误。

    一个简单的建议是在"C:\ti "中创建一个 python 环境(venv/Pyenv)、在其中重新安装 神经网络编译器、onnx 等

    这应该能解决您的问题

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

    谢谢、这使它能够正常工作

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

    谢谢、这使它能够正常工作

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

    谢谢、这使它能够正常工作

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

    谢谢、这使它能够正常工作

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

    谢谢、这使它能够正常工作