tf.raw_ops.UniformQuantizedConvolution
Выполнить квантованную свертку квантованного тензора lhs и квантованного тензора rhs. для получения квантованного output.
tf.raw_ops.UniformQuantizedConvolution(
lhs,
rhs,
lhs_scales,
lhs_zero_points,
rhs_scales,
rhs_zero_points,
output_scales,
output_zero_points,
Tout,
padding,
lhs_quantization_min_val,
lhs_quantization_max_val,
rhs_quantization_min_val,
rhs_quantization_max_val,
output_quantization_min_val,
output_quantization_max_val,
window_strides=[],
explicit_padding=[],
lhs_dilation=[],
rhs_dilation=[],
batch_group_count=1,
feature_group_count=1,
dimension_numbers='',
lhs_quantization_axis=-1,
rhs_quantization_axis=-1,
output_quantization_axis=-1,
name=None
)
Учитывая квантованный lhs и квантованный rhs, выполняет квантованное скалярное произведение на lhs и rhs, чтобы получить квантованный output.
lhs и rhs должны быть тензорами одной и той же размерности и соответствовать следующим условиям формы.
-
lhs_feature%feature_group_count== 0 -
lhs_feature%rhs_input_feature== 0 -
lhs_feature/feature_group_count==rhs_input_feature -
rhs_output_feature%feature_group_count== 0 -
lhs_batch%batch_group_count== 0 -
rhs_output_feature%batch_group_count== 0
lhs и rhs должны быть квантованными тензорами, где значение данных квантуется по формуле:
quantized_data = clip(original_data / scale + zero_point, quantization_min_val, quantization_max_val)
output также квантуется по той же формуле. Если rhs квантуется по всему тензору, то output также должен быть квантован по всему тензору.
| Аргументы | |
|---|---|
lhs | A Tensor. Должен быть одним из следующих типов: qint8. Должен быть квантованным тензором, размерность >= 3. |
rhs | A Tensor. Должен иметь тот же тип, что и lhs. Должен быть квантованным тензором, с той же размерностью, что и lhs. |
lhs_scales | A Tensor типа float32. Вещественное(ые) значение(я), используемые в качестве коэффициентов масштабирования при квантовании исходных данных, которые представляет lhs. Должен быть скалярным Tensor (lhs поддерживает только квантование по всему тензору). |
lhs_zero_points | A Tensor типа int32. Целочисленное(ые) значение(я) (int32), используемые в качестве нулевых точек при квантовании исходных данных, которые представляет lhs. Условие формы такое же, как у lhs_scales. |
rhs_scales | A Tensor типа float32. Вещественное(ые) значение(я), используемые в качестве коэффициентов масштабирования при квантовании исходных данных, которые представляет rhs. Должен быть скалярным Tensor для квантования по всему тензору или одномерным Tensor размером rhs.dim_size(kernel_output_feature_dimension) для квантования по каналу. |
rhs_zero_points | A Tensor типа int32. Целочисленное(ые) значение(я) (int32), используемые в качестве нулевых точек при квантовании исходных данных, которые представляет rhs. Условие формы такое же, как у rhs_scales. |
output_scales | A Tensor типа float32. Вещественное(ые) значение(я), используемые в качестве коэффициентов масштабирования при квантовании исходных данных, которые представляет output. Должен быть скалярным Tensor для квантования по всему тензору или одномерным Tensor размером rhs.dim_size(kernel_output_feature_dimension)
|
output_zero_points | A Tensor типа int32. Целочисленное(ые) значение(я) (int32), используемые в качестве нулевых точек при квантовании исходных данных, которые представляет выход. Условие формы такое же, как у output_scales. |
Tout | tf.DType из: tf.qint32. Тип output Tensor. |
padding | A string. Строка из: "SAME", "VALID" или "EXPLICIT", указывающая на тип алгоритма заполнения. |
lhs_quantization_min_val | A int. Минимальное значение квантованных данных, хранящихся в lhs. Например, если Tin - это qint8, то это должно быть -127, если квантование узкого диапазона, или -128 в противном случае. |
lhs_quantization_max_val | A int. Максимальное значение квантованных данных, хранящихся в lhs. Например, если Tin - это qint8, то это должно быть 127. |
rhs_quantization_min_val | A int. Минимальное значение квантованных данных, хранящихся в rhs. Например, если Tin - это qint8, то это должно быть -127, если квантование узкого диапазона, или -128 в противном случае. |
rhs_quantization_max_val | A int. Максимальное значение квантованных данных, хранящихся в rhs. Например, если Tin - это qint8, то это должно быть 127. |
output_quantization_min_val | A int. Минимальное значение квантованных данных, хранящихся в output. Например, если Tout - это qint8, то это должно быть -127, если квантование узкого диапазона, или -128 в противном случае. |
output_quantization_max_val | A int. Максимальное значение квантованных данных, хранящихся в output. Например, если Tout - это qint8, то это должно быть 127. |
window_strides | Необязательный список ints. По умолчанию []. Шаг скользящего окна для каждой пространственной размерности lhs. Должен быть пустым списком (по умолчанию) или списком размера (количество пространственных размерностей). Если передан пустой список, шаг для каждой пространственной размерности устанавливается в 1. |
explicit_padding | Необязательный список ints. По умолчанию []. Если padding - это "EXPLICIT", он должен быть задан как список, указывающий явное заполнение в начале и конце каждой lhs пространственной размерности. В противном случае он должен быть пустым. (Если используется,) Должен быть списком размера |
lhs_dilation | Необязательный список ints. По умолчанию []. Фактор дилатации для применения в каждой пространственной размерности lhs. Должен быть пустым списком (по умолчанию) или списком размера (количество lhs пространственных размерностей). Если пустой список, дилатация для каждой lhs пространственной размерности устанавливается в 1. |
rhs_dilation | Необязательный список ints. По умолчанию []. Фактор дилатации для применения в каждой пространственной размерности rhs. Должен быть пустым списком (по умолчанию) или списком размера (количество rhs пространственных размерностей). Если пустой список, дилатация для каждой rhs пространственной размерности устанавливается в 1. |
batch_group_count | Необязательное int. По умолчанию 1. Количество групп батчей. Используется для сгруппированных фильтров. Должен быть делителем output_feature. |
feature_group_count | Необязательное int. По умолчанию 1. Количество групп функций. Используется для сгруппированных сверток. Должен быть делителем как lhs_feature, так и output_feature. |
dimension_numbers | Необязательное string. По умолчанию "". Структура информации о размерности для операции свертки. Должен быть пустой строкой (по умолчанию) или сериализованной строкой прото tensorflow.UniformQuantizedConvolutionDimensionNumbersAttr. Если пустая строка, по умолчанию используется ("NCHW", "OIHW", "NCHW") (для двумерной свертки). |
lhs_quantization_axis | Необязательное int. По умолчанию -1. Указывает индекс размерности тензора, где применяется квантование по оси для срезов вдоль этой размерности. Если установлено в -1 (по умолчанию), это указывает на квантование по всему тензору. Для lhs поддерживается только квантование по всему тензору. Таким образом, это должно быть установлено в -1. Другие значения приведут к ошибке на этапе создания OpKernel. |
rhs_quantization_axis | Необязательное int. По умолчанию -1. Указывает индекс размерности тензора, где применяется квантование по оси для срезов вдоль этой размерности. Если установлено в -1 (по умолчанию), это указывает на квантование по всему тензору. Для rhs поддерживается только квантование по всему тензору или квантование по каналу вдоль kernel_output_feature_dimension. Таким образом, это должно быть установлено в -1 или dimension_numbers.kernel_output_feature_dimension. Другие значения приведут к ошибке на этапе создания OpKernel. |
output_quantization_axis | Необязательное int. По умолчанию -1. Указывает индекс размерности тензора, где применяется квантование по оси для срезов вдоль этой размерности. Если установлено в -1 (по умолчанию), это указывает на квантование по всему тензору. Для output поддерживается только квантование по всему тензору или квантование по каналу вдоль output_feature_dimension. Таким образом, это должно быть установлено в -1 или dimension_numbers.output_feature_dimension. Другие значения приведут к ошибке на этапе создания OpKernel. |
name | Имя операции (необязательно). |
| Возвращаемое значение | |
|---|---|
Объект типа 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/UniformQuantizedConvolution