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.

[参考译文] PROCESSOR-SDK-J722S:使用默认模型运行推理的问题(mobilenetv1 )。

Guru**** 2457760 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1478914/processor-sdk-j722s-the-question-about-running-inference-with-the-default-model-mobilenetv1

器件型号:PROCESSOR-SDK-J722S

工具与软件:

大家好、团队:

在 TIDL 10.00.08.00中

我尝试使用输入= uint8且输入= float 来转换默认模型(mobilenet1v)、

我发现 input=uint8的模型会执行去量化步进、

而其余器件与 input=float 的模型相同。

不过、input=uint8的模型实际上具有更短的推理时间。

我不知道为什么会出现这种症状。

感谢您的帮助。

此致、

Ken

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

    尊敬的 Ken:

    我不理解你的问题。  请详细说明。  

    Chris

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

    尊敬的 Ken:

    DSP 针对 int 进行了优化、因此尽管采用了去量化步长、但实际计算仍会运行 int。 这就是导致推理时间缩短的原因。 TIDL 针对 INT8和 INT16进行了优化。

    此致、

    Christina

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

    大家好、
    很抱歉因我的个人休假而延迟回复。

    我错过了以下结果:


    您好
    很抱歉混淆,但我想问我的理解是否正确吗?
    如果原始 ONNX 文件的输入为 u8、则在通过onnxrt_ep.py(使用tensor_bit=8)转换后、推理过程将以 int 运行。
    但是,如果原始 ONNX 文件的输入为 float ,则在通过onnxrt_ep.py(使用tensor_bit=8)转换后,推理过程仍将以 float 方式运行。

    感谢您的帮助。

    此致、
    肯尼亚

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

    您好、Ken、

    是的、您有正确的理解。  

    此致、

    Christina

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

    您好 :  
    很抱歉打扰您、但我想问:

    如果输入是 u8、并在去量化后变为浮点型、那么中间的计算怎么仍然可以在 u8中执行?

    感谢您的帮助。

    此致、
    Ken

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

    尊敬的 Ken:

    这取决于您运行网络的位置和方式。 在运行纯 ONNX 的主机上、该模型为32位浮点模型。 在器件(TIDL)上运行时、模型的输入是 INT、模型将运行16位或8位。 我不明白去量化是什么意思。 我们采用32位 FP ONNX 模型 量化 转换为整数近似值。  

    Chris

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

    大家好、 :   

    model_zoo/TFL-CL-0000-mobileNetV1-mlperf/model/mobilenet_v1_1.0_224.tflite 中的 tflite 模型是:
    输入(u8)-->去量化(u8到 float)-->转换(float)

    这就是我感到困惑的原因。

    可能的模型工作流程包括:

    1. 输入(U8)→均衡(U8至悬空)→其他层(悬空)
    2. 输入(悬空)→其他层(悬空)
    3. 输入(U8)→其他层(U8)

    这些工作流中的哪一个可用于生成 U8模型 通过onnxrt_ep.py?

    此外、我要确认:
    tensor_bitsmodel_configs.py是否已在中设置?
    例如、采用以下格式:

    optional_options=AttrDict( debug_level=6, tensor_bits=8 )

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

    尊敬的 Ken:

    所有 TIDL 都是8位或16位 int。  该器件上没有浮点支持。  流程如下:

    1.内部输入-> 8/16位流过网络-> 8/16位输出

    2.浮动输入->  8/16位通过网络的流量-> 8/16位输出

    将 tensor_bits 设置为8。 如果数据是以 float 格式传输(而不是以照相机格式传输、即 int 格式传输)、则可能需要从 float 格式转换到 int 格式的输入转换层、具体取决于您的 TIDL 版本。   

    此致、

    Chris