【问题标题】:Tensorflow qunatization - what does zero point meanTensorflow 量化 - 零点是什么意思
【发布时间】:2019-10-24 08:25:56
【问题描述】:

我正在尝试理解 tensorflow 中的量化,我正在关注本教程。

https://heartbeat.fritz.ai/8-bit-quantization-and-tensorflow-lite-speeding-up-mobile-inference-with-low-precision-a882dfcafbbd

在教程中它说,量化方程是:

  • r 是实际值(通常是 float32)
  • q 是将其量化表示为 B 位整数(uint8、uint32 等)
  • S (float32) 和 z (uint) 是我们缩放和移动数轴的因素。 z 是量化的“零点”,它总是会精确映射回 0.f。

我正在努力理解零点的含义,并希望有人可以用一个例子来解释它?

【问题讨论】:

    标签: tensorflow quantization


    【解决方案1】:

    如果您有带有负数据的值,则零点可以偏移范围。因此,如果您的零点是 128,则未缩放的负值 -127 到 -1 将由 1 到 127 表示,正值 0 到 127 将由 128 到 255 表示。注意 q=0 故意不使用以保持范围对称在两端(因此是 256-1 而不是 256)。

    例如给定一个输入张量,其数据范围为 -1000 到 +1000(包括两端),其中一个元素的值为 39.215686275,当使用 128 作为零点时,该元素的量化值为 133:

    quantizedValue = round(realValue / scale + zeroPoint) = 133
    
    # So...
    quantizedValue = round(39.215686275 / 7.843137255 + 128) = 133
    quantizedValue = round(0 / 7.843137255 + 128) = 128
    quantizedValue = round(1000 / 7.843137255 + 128) = 255
    quantizedValue = round(-1000 / 7.843137255 + 128) = 1
    

    地点:

    zeroPoint = 128  ## Note 256/2 is symmetric, and q=0 isn't really used.
                     ## Use same zero point for entire tensor.
    scale = (realRangeMaxValue - -realRangeMinValue) / quantizedRange
    scale = (1000 - -1000) / 255 = 7.843137255
    ## Alternately could use inverse scale and multiply above, inverseScale = 0.1275
    
    realRangeMinValue = -1000
    realRangeMaxValue = 1000
    quantizedRange = 2^8 - 1 = 255
    quantizedRangeMinValue = integerRangeMinValue - zeroPoint = -128
    quantizedRangeMaxValue = integerRangeMaxValue - zeroPoint = 127
    

    反之:

    realValue = (quantizedValue - zeroPoint) * scale = 39.215686275
    realValue = (133 - 128) * 7.843137255 = 39.215686275
    realValue = (128 - 128) * 7.843137255 = 0
    realValue = (255 - 128) * 7.843137255 = 1000
    realValue = (1 - 128) * 7.843137255 = -1000
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-03
      • 2023-03-19
      • 1970-01-01
      • 2017-06-29
      • 1970-01-01
      • 2016-08-17
      • 1970-01-01
      • 2019-07-16
      相关资源
      最近更新 更多