tf.raw_ops.QuantizeDownAndShrinkRange
Преобразовать квантованный тензор 'input' в тензор 'output' с меньшей точностью, используя
tf.raw_ops.QuantizeDownAndShrinkRange(
input, input_min, input_max, out_type, name=None
)
фактическое распределение значений для максимального использования меньшей разрядности и соответствующей корректировки диапазонов минимального и максимального значений выходных данных.
[input_min, input_max] — скалярные числа с плавающей точкой, которые задают диапазон для представления данных 'input' в формате с плавающей точкой. Например, если input_min равен -1,0, а input_max равен 1,0, и мы работаем с квантованными данными типа quint16, то значение 0 в 16-битовых данных должно интерпретироваться как -1,0, а значение 65535 — как 1,0.
Этот оператор пытается максимально сохранить точность в выходных данных с меньшей разрядностью, вычисляя фактические минимальное и максимальное значения, встречающиеся в данных. Например, предположим, что входные данные типа quint16 не имеют значений меньше 16 384 и больше 49 152. Это означает, что требуется только половина диапазона, все интерпретации чисел с плавающей точкой находятся между -0,5 и 0,5, поэтому если мы хотим сжать данные в выходные данные типа quint8, мы можем использовать этот диапазон вместо теоретического диапазона от -1,0 до 1,0, который предлагается минимальным и максимальным значениями входа.
На практике это наиболее полезно для получения выходных данных из операций, таких как QuantizedMatMul, которые могут давать выходные данные с большей разрядностью, чем их входные данные, и могут иметь большой потенциальный диапазон выходных значений, но на практике распределение входных значений использует только небольшую часть возможного диапазона. Передача этих выходных данных в этот оператор позволяет уменьшить разрядность с 32 до 8 с минимальной потерей точности.
| Args | |
|---|---|
input | A Tensor. Must be one of the following types: qint8, quint8, qint32, qint16, quint16. |
input_min | A Tensor of type float32. The float value that the minimum quantized input value represents. |
input_max | A Tensor of type float32. The float value that the maximum quantized input value represents. |
out_type | A tf.DType from: tf.qint8, tf.quint8, tf.qint32, tf.qint16, tf.quint16. The type of the output. Should be a lower bit depth than Tinput. |
name | A name for the operation (optional). |
| Returns | |
|---|---|
A tuple of Tensor objects (output, output_min, output_max). | |
output | A Tensor of type out_type. |
output_min | A Tensor of type float32. |
output_max | A Tensor of type float32. |
© 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/QuantizeDownAndShrinkRange