Python 量化在TFLite图中是如何以及何时工作的?

Python 量化在TFLite图中是如何以及何时工作的?,python,tensorflow,tensorflow-lite,Python,Tensorflow,Tensorflow Lite,我有一个TF模型,它经过量化训练,冻结,用TOCO转换成tflite,现在我有了tflite HTML图形模型和json 我可以看到,对于我的图中的每个张量,每个都有量化属性(min,max,scale,zero pt),我试图确定这些属性如何应用于每个张量 例如,我理解,并且我可以理解,采用量化权重/偏差,乘以比例并添加最小值,返回原始权重/偏差(几乎) 我不明白的是: 为什么有些张量有量化属性(如Relu、Sigmoid),但没有内在参数(如权重和偏差)?是因为它们是输出张量,并且在数据输

我有一个TF模型,它经过量化训练,冻结,用TOCO转换成tflite,现在我有了tflite HTML图形模型和json

我可以看到,对于我的图中的每个张量,每个都有量化属性(min,max,scale,zero pt),我试图确定这些属性如何应用于每个张量

例如,我理解,并且我可以理解,采用量化权重/偏差,乘以比例并添加最小值,返回原始权重/偏差(几乎)

我不明白的是:

  • 为什么有些张量有量化属性(如Relu、Sigmoid),但没有内在参数(如权重和偏差)?是因为它们是输出张量,并且在数据输入到下一个操作之前应用了量化吗
  • 在通过模型的数据流期间,在哪些点(如果有)应用量化?例如,假设有一个通过conv2d操作的浮点图像张量-权重/偏差/relu的量化属性在哪里以及如何用于获得conv2d操作的输出
本质上,如果我将TFLite模型数据解析为一个numpy数组,那么为了从头开始重新创建模型进行推理,我需要知道关于通过网络的数据流(关于量化)的所有信息


我似乎找不到任何与此相关的文档。如果有任何帮助,我们将不胜感激。

卷积内环不会对uint8值进行macc。还有一个较小的外环用于计算macc的z偏移部分。在每个内核卷积结束时,您需要使用输入\刻度*内核\刻度/输出\刻度的降刻度乘法器将int32累加器降刻度到8位uint8范围。这三个量表值是在培训期间学习的,并且在tflite推断文件中。本文解释了这些操作。

卷积内循环不执行uint8值的macc。还有一个较小的外环用于计算macc的z偏移部分。在每个内核卷积结束时,您需要使用输入\刻度*内核\刻度/输出\刻度的降刻度乘法器将int32累加器降刻度到8位uint8范围。这三个量表值是在培训期间学习的,并且在tflite推断文件中。本文解释了这些操作。

我可以找到
输入量表
内核量表
,但在量化模型中哪里可以找到
输出量表
?我可以找到
输入量表
内核量表
,但在量化模型中哪里可以找到
输出量表