Python tf.fake\u quant\u与\u min\u max\u参数和tf.fake\u quant\u与\u min\u max\u变量之间有什么区别
我很想了解张量流函数之间的区别Python tf.fake\u quant\u与\u min\u max\u参数和tf.fake\u quant\u与\u min\u max\u变量之间有什么区别,python,tensorflow,quantization,Python,Tensorflow,Quantization,我很想了解张量流函数之间的区别 tf.fake_quant_with_min_max_args tf.fake_quant_with_min_max_vars 在API中,它们的描述几乎相同。 我通常通过tf.fake\u quant\u与\u min\u max\u vars手动量化所需的节点,但我不确定它是否正确 例如,权重是否应该使用tf.fake\u quant\u和\u min\u max\u参数 类似地,看一下quantize.quantize的代码,我知道它基本上会遍历图形,找到
tf.fake_quant_with_min_max_args
tf.fake_quant_with_min_max_vars
在API中,它们的描述几乎相同。
我通常通过tf.fake\u quant\u与\u min\u max\u vars
手动量化所需的节点,但我不确定它是否正确
例如,权重是否应该使用tf.fake\u quant\u和\u min\u max\u参数
类似地,看一下quantize.quantize的代码,我知道它基本上会遍历图形,找到兼容的张量,并根据全局步骤为标识/量化添加节点。然而,我应该理解,并非所有操作都是量化的(例如,conv1d,尽管conv2d和mat/mul是量化的)。该库将来是否支持所有操作?关于命名,这有点用词不当。“args”变量使用属性表示最小值/最大值,因此仅对固定范围有效。“VAR”变量采用任意的最小/最大张量。这些是实际VAR还是其他计算值取决于量化方法。“VAR”变体的最小/最大值具有梯度,因此可以进行训练。许多训练方法只是在训练时使用批次的最小/最大值计算它们,然后使用指数移动平均值将它们累积到不可训练的变量中。然后在评估时,使用最小/最大变量代替计算的最小/最大值 如果手动添加它们,则需要确保所有算术运算(add、mul等,但不包括转置、重塑等)的输入在输入的张量上有一个适当的伪量化运算 在实践中,我发现适用于此的规则是:
Hth.非常感谢您的精彩回答!