tf.raw_ops.UniformRequantize
Для квантованного тензора input выполните переквантование с новыми параметрами квантования.
tf.raw_ops.UniformRequantize(
input,
input_scales,
input_zero_points,
output_scales,
output_zero_points,
Tout,
input_quantization_min_val,
input_quantization_max_val,
output_quantization_min_val,
output_quantization_max_val,
input_quantization_axis=-1,
output_quantization_axis=-1,
name=None
)
Для квантованного тензора input, который был квантован с использованием {input_scales, input_zero_points, input_quantization_axis, input_quantization_min_val, input_quantization_max_val}, выполните переквантование в тензор, квантованный с использованием {output_scales, output_zero_points, output_quantization_axis, output_quantization_min_val, output_quantization_max_val}. Переквантование выполняется по формуле: output_quantized_data = clip( (input_quantized_data - input_zero_point) * (input_scale / output_scale) + output_zero_point, output_quantization_min_val, output_quantization_max_val)
Поддерживаются следующие случаи квантования по тензору и по оси:
- по тензору -> по тензору
- по тензору -> по оси
- по оси -> по оси, где input_quantization_axis равен output_quantization_axis. То есть как минимум одно из значений input_quantization_axis и output_quantization_axis должно быть равно -1 либо оба значения должны быть равны.
| Аргументы | |
|---|---|
input | Tensor. Должен иметь один из следующих типов: qint8, qint32. Должен быть тензором типа Tin. |
input_scales | Tensor типа float32. Вещественное значение (значения), используемое в качестве масштаба (масштабов) при квантовании исходных данных, которые представляет input. Должен быть скалярным тензором, если quantization_axis равен -1 (квантование по тензору); в противном случае — одномерным тензором размера (input.dim_size(quantization_axis),) (квантование по оси). |
input_zero_points | Tensor типа int32. Значение (значения) int32, используемое в качестве zero_point (zero_points) при квантовании исходных данных, которые представляет input. Требование к форме такое же, как для scales. |
output_scales | Tensor типа float32. Вещественное значение (значения), используемое в качестве нового масштаба (масштабов) при квантовании исходных данных, которые представляет input. Должен быть скалярным тензором, если quantization_axis равен -1 (квантование по тензору); в противном случае — одномерным тензором размера (input.dim_size(quantization_axis),) (квантование по оси). |
output_zero_points | Tensor типа int32. Значение (значения) int32, используемое в качестве нового zero_point (zero_points) при квантовании исходных данных, которые представляет input. Требование к форме такое же, как для scales. |
Tout | tf.DType из набора: tf.qint8, tf.qint32. Тип выходного тензора. tf.DType из набора: tf.qint8, tf.qint32 |
input_quantization_min_val | int. Минимальное значение квантования, использованное при квантовании исходных данных, которые представляет input. Обычно (но не только) этот атрибут указывает на узкий диапазон; в этом случае значение устанавливается равным (Tin lowest) + 1 для узкого диапазона и (Tin lowest) в противном случае. Например, если Tin — qint8, при квантовании с узким диапазоном устанавливается значение -127, а без узкого диапазона — -128. |
input_quantization_max_val | int. Максимальное значение квантования, использованное при квантовании исходных данных, которые представляет input. Обычно (но не только) этот атрибут указывает на узкий диапазон; в обоих случаях — как для узкого диапазона, так и без него — значение устанавливается равным (Tout max). Например, если Tin — qint8, устанавливается значение 127. |
output_quantization_min_val | int. Новое минимальное значение квантования для квантования исходных данных, которые представляет input. |
output_quantization_max_val | int. Новое максимальное значение квантования для квантования исходных данных, которые представляет input. |
input_quantization_axis | Необязательный int. Значение по умолчанию: -1. Ось квантования, использованная при квантовании исходных данных, которые представляет input. Указывает индекс измерения тензора, вдоль которого выполняется квантование по оси для срезов. Если задано значение -1 (по умолчанию), это означает квантование по тензору. В противном случае значение должно находиться в диапазоне [0, input.dims()). |
output_quantization_axis | Необязательный int. Значение по умолчанию: -1. Новая ось квантования для квантования исходных данных, которые представляет input. |
name | Имя операции (необязательно). |
| Возвращаемое значение | |
|---|---|
Tensor типа Tout. |
© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/api_docs/python/tf/raw_ops/UniformRequantize