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.

[参考译文] TDA4VM:将定量模型从tflite导入到TIDL

Guru**** 2539500 points
Other Parts Discussed in Thread: TDA4VM

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1101961/tda4vm-import-quantized-model-from-tflite-to-tidl

部件号:TDA4VM

TI成员您好:

我使用tensorflow进行 量化感知培训,并将其转换为 采用INT8格式的tflite模型。   我想 将tflite模型导入到TIDL执行中。

版本信息:

  TIDL:TIdl_J7_02_00_00_07

我有 两个问题:

1.我可以使用16位 来量化 Tidl_importQuantLayerParams()中的偏倚,并 使用16位来执行Tidl_conv2dBiasSplit ()吗?

  Tflite使用Int32存储卷积层的偏倚。

   在 TIDL Importer阶段,TIDL_ImportQuantLayerParams()使用8位来量化偏倚(但使用Int16来存储它?) 它会导致 一些精度损失。

  在TIDL推断阶段,Tidl_conv2DInit()使用INT8 BIAS执行 Tidl_conv2dBiasSplit ()。 但引用Tidl_refConv2dProcess()的实现使用 Int16 biasPtr执行 Tidl_conv2dBiasSplit ()。

   Tidl_conv2dMMAProcess()是否也使用 Int16 bias来执行 Tidl_conv2dBiasSplit ()?   (我 找不到Tidl_conv2dMMAProcess的实现代码)

  在   EVM上运行时,是否可以使用16位来量化TIDL_ImportQuantLayerParams()中的偏置,并使用16位来执行TIDL_conv2dBiasSplit ()?

2.如何启用每通道权重量化?

  缺 省情况下,每通道的tflite使用权重量化。 TIDL仅支持  按通道权重量化案例: (numGroups == numInChannels == numOutChannels)。

  我尝试修改 一些代码,包括TIDL Importer和 TIDL推断模块,并在运行 PC_DSP_test_dl_algo时获得良好的结果。

  我使用生成的net.bin和params.bin在EVM上运行模型,结果不好。  我认为这是因为conv内核 不支持 每通道 权重量化。

  如何启用conv内核的每通道权重量化

谢谢。

Shih

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

    你好,Youthin Shih:

       Tidl_conv2dMMAProcess()是否也使用 Int16 bias来执行 Tidl_conv2dBiasSplit ()?   (我 找不到Tidl_conv2dMMAProcess的实现代码)

    我是否可以使用16位来 在Tidl_QuantbiaLayerParams()中进行量化 并 使用16位来运行吗[Biasspplit_Biasvm]

       对于8位量化,TIDL使用16位偏置。 偏置拆分功能将16位偏置拆分为两个8位数量。

    如何启用每通道权重量化?

    TDA4VM的TIDL仅支持深度卷积层的每通道量化权重,并且 必须与2量化的幂(quantizationStyle=3)一起使用。

    您是否尝试过CalibrationOption=7以查看您的准确性是否提高,您可以在A.2.2节中找到此选项的详细信息。 以下文档中的高级偏置校准:  

    https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-jacinto7/08_02_00_05/exports/docs/tidl_j721e_08_02_00_11/ti_dl/docs/user_guide_html/md_tidl_fsg_quantization.html#did_tidl_quantization_1


    此致,

    Anshu

    :  

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

    您好,Anshu,感谢您的回复。

    我知道 TDA4VM的TIDL仅支持深度卷积层的每通道量化权重。

    我的问题是:

    1. TIDL是否支持 卷积的单通道权重量化仅满足以下情况: (numGroups == numInChannels == numOutChannels)?

    对于一般 的逐字卷积, numInChannels和 numOutChannels可能不同。

    2.卷积内核是否 支持 每通道 权重量化?

    如果答案为是, 我如何启用conv内核的每通道权重量化? 您能 提供任何建议吗?

    如果答案为"否",  则此功能在将来的版本中是否受支持?

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

    1. TIDL是否支持 卷积的单通道权重量化仅满足以下情况: (numGroups == numInChannels == numOutChannels)?

    对于一般 的逐字卷积, numInChannels和 numOutChannels可能不同。

    [/引述]

    它仅支持numGroups == numInChannels == numOutChannels

    如果408.9775万如果答案为"否",  则此功能在将来的版本中是否受支持?

      将来包含MMAv2的设备将支持每个通道的量化,但对于TDA4VM,不 支持此功能。

    此致,

    Anshu

    [/quote]