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