tf.quantization.quantize_and_dequantize_v2
Quantizes then dequantizes a tensor.
tf.quantization.quantize_and_dequantize_v2( input, input_min, input_max, signed_input=True, num_bits=8, range_given=False, round_mode='HALF_TO_EVEN', name=None, narrow_range=False, axis=None )
Updates the gradient definition for quantization that is outside the range to be 0.To simulate the V1 the behavior of tf.quantization.quantize_and_dequantize(...) use tf.grad_pass_through(tf.quantization.quantize_and_dequantize_v2)(...).
Example usage:
def getQuantizeOp(input): input_tensor = tf.placeholder(tf.float32, shape=[4, 4]) net = tf.quantization.quantize_and_dequantize(input, input_min=min_threshold, input_max=max_threshold, range_given=True) To simulate v1 behavior: def testDecomposeQuantizeDequantize(self): def f(input_tensor): return tf.quantization.quantize_and_dequantize_v2(input_tensor, input_min = 5.0, input_max= -10.0, range_given=True) input_tensor = tf.placeholder(tf.float32, shape=[4, 4]) net = tf.grad_pass_through(f)(input_tensor)
Args | |
---|---|
input | A Tensor to quantize and dequantize. |
input_min | If range_given=True, the minimum input value, that needs to be represented in the quantized representation. If axis is specified, this should be a vector of minimum values for each slice along axis. |
input_max | If range_given=True, the maximum input value that needs to be represented in the quantized representation. If axis is specified, this should be a vector of maximum values for each slice along axis. |
signed_input | True if the quantization is signed or unsigned. |
num_bits | The bitwidth of the quantization. |
range_given | If true use input_min and input_max for the range of the input, otherwise determine min and max from the input Tensor . |
round_mode | Rounding mode when rounding from float values to quantized ones. one of ['HALF_TO_EVEN', 'HALF_UP'] |
name | Optional name for the operation. |
narrow_range | If true, then the absolute value of the quantized minimum value is the same as the quantized maximum value, instead of 1 greater. i.e. for 8 bit quantization, the minimum value is -127 instead of -128. |
axis | Integer. If specified, refers to a dimension of the input tensor, such that quantization will be per slice along that dimension. |
Returns | |
---|---|
A Tensor . Each element is the result of quantizing and dequantizing the corresponding element of input . |
© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.4/api_docs/python/tf/quantization/quantize_and_dequantize_v2