TI中文支持网
TI专业的中文技术问题搜集分享网站

TDA4VM: 量化模型推理结果和onnx推理结果存在一个系数差

Part Number:TDA4VM

使用的sdk 0701,官方文档里对量化的描述比较模糊,量化过程发生在 tidlModelImport工具对模型进行转换的过程中吗?

我对转换后的int8模型调用PC_dsp_test_dl_algo.out工具对图片进行推理,解析的推理结果和onnx的推理结果存在一个系数差。

量化脚本:

modelType= 2
numParamBits= 8
numFeatureBits= 8
inputNetFile= "../../test/testvecs/collate/fs_noCoord/models/fs_noCoord.onnx"
outputNetFile= "../../test/testvecs/collate/fs_noCoord/infer/8/tidl_net_fs_noCoord.bin"
outputParamsFile= "../../test/testvecs/collate/fs_noCoord/infer/8/tidl_io_fs_noCoord_"
inDataNorm = 1
inMean = 123.675 116.28 103.53inScale = 0.017125 0.017507 0.017429
resizeWidth = 480
resizeHeight = 480
inWidth = 480
inHeight = 480
inNumChannels = 3
inData = ../../test/testvecs/collate/fs_noCoord/calib_list.txt
postProcType = 0


int8模型的推理结果:
-33.00000000
-41.00000000
-42.00000000
-40.00000000
-41.00000000
-32.00000000
-27.00000000
-22.00000000
-25.00000000
-37.00000000
...


onnx的推理结果:
-14.12847805
-17.56087685
-18.81339073
-17.77967834
-18.89683342
-14.82417774
-13.74363136
-11.10289955
-12.24503803
-17.49886703
....
很明显int8的推理结果和onnx的推理结果存在一个系数差。

请问最后模型输出的结果,需要的系数怎么获取,才能转换为float模型输出的结果?

Cherry Zhou:

您好我们已收到您的问题并反馈,如有答复将尽快回复您。谢谢!

,

Cherry Zhou:

很抱歉回复晚了。

这些参数在模型导入过程中进行量化,相应的参数标度可从作为导入工件一部分生成的 "* 参数调试 .csv " 中找到 ( ti_dl/test/testvecs/config/tidl_models/onnx/**_paramDebug.csv 中)。

量化参数可被相应的量化标度除以来获得近似浮点值,但由于量化损耗,参数的实际浮点值将存在细微差异。

希望以上回答对您有所帮助,如有其他问题请随时联系我们。

,

meng yu:

你好,参数调试.csv文件中具体哪一个是对应的量化参数。

我生成的参数调试表格如下:

Scale列和实际的系数 不太符合

,

Cherry Zhou:

好的收到您的问题,已跟进给工程师,如有答复将尽快回复您。

,

Cherry Zhou:

您好,比例不是实际系数。 对于特定的,该层的量化系数需要除以相应的比例来获得实际系数。

更多详细信息请您参阅以下文档的 " 权重量化统计分析 " 部分:https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-jacinto7/08_00_00_12/exports/docs/tidl_j7_08_00_00_10/ti_dl/docs/user_guide_html/md_tidl_fsg_steps_to_debug_mismatch.html

该文档中提到的函数 "TIDL_CompareParams" 中的 "quantParamFloo" 变量会提供您所需的系数值。

希望以上回答对您有所帮助,如有其他问题请随时联系我们。

赞(0)
未经允许不得转载:TI中文支持网 » TDA4VM: 量化模型推理结果和onnx推理结果存在一个系数差
分享到: 更多 (0)