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.

[参考译文] TDA4VL-Q1:PC 仿真模式和电路板模式之间的不同推理结果

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1393926/tda4vl-q1-different-inference-result-between-pc-emulation-mode-and-board-mode

器件型号:TDA4VL-Q1
主题中讨论的其他器件:TDA4VL

工具与软件:

嗨、大家好!

我将 ti-processor-sdk-rtos-j721s2-evm-09_02_00_05.tar 这个版本用于我的 tda4vl 程序

我使用此参数将 onnx 模型转换为 ti bin

--------------------------------------------------------

modelType = 2
numParamBits = 8
numFeatureBits = 8
quantizationStyle = 2

MixedPrecisionFactor = 1.2

……μ A

--------------------------------------------------------

因为它将输出层设置为16位

在 PC 仿真模式下获取正确的结果

但当我在电路板上运行模型时  

结果是完全错误的!

并且我刚刚删除了  MixedPrecisionFactor = 1.2

并获取正常的8位层输出。

我也可以在板上获得正确的结果。

但该模型的精度将低于 16位模型

顺便说一下,我在 ti-processor-sdk-rtos-j721s2-evm-08_06_01_03.tar 上使用相同的参数可以得到正确的结果16位模型。  

因此、我不确定这两个版本之间的差异。  

有人能帮我解决这个问题吗?

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

    您好!

    感谢您的问题、我已将此主题分配给我们的分析专家。

    请期待他们的回复。

    谢谢  

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

    您好!

    总结您观察到的以下行为:

    -在 ti-processor-sdk-rtos-j721s2-evm-09_02_00_05中使用 TIDL-RT 流程  

    -自动混合精度设置为1.2后,您可以在主机仿真中进行推理,得到正确的结果,但是将模型工件传输到 EVM 时,会得到错误的结果

    -使用8位定点精度,不会发生这种不匹配(但对于您的使用情况不够精确)

    为了进一步调试上述问题、您是否可以提供 来自主机仿真和目标推理的层级跟踪(通过 writeTraceLevel = 1来完成)、并进行比较以查看发生功能不匹配的位置? 本文的 调试目标(EVM)执行中错误场景的步骤下记录了执行这些操作的步骤。 此外、如果您能够提供模型和您使用的导入配置文件、在最后查看这些文件会很有帮助  

    此致!

    Asha

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

    您好、我已经检查了您的方法  

     当我在主机仿真上设置参数"writeTraceLevel = 1"时、模型将在7层得到"段故障"。

    在该函数中"vxProcessGraph"

    但它确实生成了7个日志文件  

    通过设置"writeTraceLevel = 1"、开发板可以获取整个日志文件

    但当我将它们与文件进行比较时

    两者之间几乎有差异。

     

    这是我的配置文件  

    因为我们的模型很重要,所以我不能把它发送到网站 抱歉。

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

    您好!

    [报价 userid="522023" url="~/support/processors-group/processors/f/processors-forum/1393926/tda4vl-q1-different-inference-result-between-pc-emulation-mode-and-board-mode/5384370 #5384370"]

     当我在主机仿真上设置参数"writeTraceLevel = 1"时、模型将在7层得到"段故障"。

    [报价]

    我不会期望这种情况发生-根据我的理解、如果没有此标志、您就不会遇到此分段故障? 您能否提供有关此问题的日志?

    从上一部分来看、您似乎在说每一层都有区别? 您能解释一下吗? 您看到区别的第一层是什么?

    此致!

    Asha

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

    我不会期望这种情况发生-根据我的理解、如果没有此标志、您就不会遇到此分段故障? 您能否提供有关此问题的日志?

    回复:是的、如果没有此标志、程序将运行并获取推理结果。  

    故障日志

    当程序运行到"status = vxProcessGraph (obj->graph);"时

    并且找不到这两个 tmp 文件。

    这是第一层模型输出、左侧的是电路板结果、右侧的是 PC 结果。  

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

    尊敬的  Asha:

    使用相同的16位模型在 SDK8.6中可以正常运行、您能告诉我如何将 tidl 库版本降级到 SDK8.6吗?

    谢谢
    此致
    Quanfeng

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

    我们已经尝试使用 SDK 10.0,通过设置将这个模型转换为16位(不混合精度方式)  

    我们可以得到正确的推理结果

    但当我们使用 MixedPrecisionFactor 时  

    当此日志信息时、它会被转储内核中止

    那么、您的 SDK 10.0可能 在 mixedPrecisionFactor 模式下存在一些错误  

    建议你可以解决这个问题!

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

    你(们)好  

    您是否可以尝试使用最新版本的 edgea-tidl-tools 来导入您的模型:https://github.com/TexasInstruments/edgeai-tidl-tools

    我们会经常更新此工具、并且在每个版本中都会修复许多错误。

    此致、

    Adam

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

    你(们)好  

    最新版本为10_00_08。  

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

    我们使用10_00_08转换模型并获取正确的推理结果。

    感谢您的支持!