tf.raw_ops.UniformQuantizedConvolutionHybrid
Выполнить гибридное квантованное свёртку float тензора lhs и квантованного тензора rhs.
tf.raw_ops.UniformQuantizedConvolutionHybrid(
lhs,
rhs,
rhs_scales,
rhs_zero_points,
Tout,
padding,
rhs_quantization_min_val,
rhs_quantization_max_val,
window_strides=[],
explicit_padding=[],
lhs_dilation=[],
rhs_dilation=[],
batch_group_count=1,
feature_group_count=1,
dimension_numbers='',
rhs_quantization_axis=-1,
name=None
)
Учитывая float lhs и квантованный rhs, во внутренней выполняет квантование на lhs, а затем выполняет квантованную свёртку по квантованному lhs и rhs.
Внутреннее квантование на lhs — это квантование в Trhs, динамический диапазон, на пакет (на ось по оси dimension_numbers.input_batch_dimension), асимметричное и не узкого диапазона (диапазон [Trhs_MIN, Trhs_MAX]).
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
rhs должен быть квантованным тензором, где его значение данных квантуется по формуле: quantized_data = clip(original_data / scale + zero_point, quantization_min_val, quantization_max_val).
| Аргументы | |
|---|---|
lhs | A Tensor. Должен быть одним из следующих типов: float32. Должен быть неквантованным тензором Tlhs, ранг >= 3. |
rhs | A Tensor. Должен быть одним из следующих типов: qint8. Должен быть квантованным тензором Trhs, такого же ранга, как lhs. |
rhs_scales | A Tensor типа float32. Вещественное(ые) значение(я), используемые в качестве коэффициентов масштабирования при квантовании исходных данных, которые rhs представляет. Должен быть скалярным тензором для квантования по тензору или 1D тензором размера rhs.dim_size(kernel_output_feature_dimension) для квантования по каналу. |
rhs_zero_points | A Tensor типа int32. Целочисленные(ые) значение(я) используемые в качестве zero_point при квантовании исходных данных, которые rhs представляет. Условие формы, аналогичное rhs_scales. |
Tout | tf.DType из: tf.float32. Тип выходного тензора. |
padding | A string. Строка из: "SAME", "VALID" или "EXPLICIT", указывающая тип алгоритма заполнения, который следует использовать. |
rhs_quantization_min_val | An int. Минимальное значение квантованных данных, хранящихся в rhs. Например, если Trhs является qint8, это должно быть установлено в -127, если квантование узкого диапазона или -128, если нет. |
rhs_quantization_max_val | An int. Максимальное значение квантованных данных, хранящихся в rhs. Например, если Trhs является qint8, это должно быть установлено в 127. |
window_strides | Необязательный список ints. По умолчанию []. Шаг скользящего окна для каждой пространственной размерности lhs. Должен быть пустым списком (по умолчанию) или списком размера (количество пространственных размерностей). Если предоставлен пустой список, шаг для каждой пространственной размерности устанавливается в 1. |
explicit_padding | Необязательный список ints. По умолчанию []. Если padding атрибут "EXPLICIT", должен быть задан как список, указывающий явные заполнения в начале и конце каждой пространственной размерности lhs. В противном случае этот атрибут должен быть пустым. (При использовании) Должен быть списком размера 2 * (количество пространственных измерений lhs), где (explicit_padding[2 * i], explicit_padding[2 * i + 1]) указывает spatial_dimensionsi. |
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. По умолчанию "". Структура информации о размерности для операции свёртки. Должна быть пустой строкой (по умолчанию) или сериализованной строкой proto tensorflow.UniformQuantizedConvolutionDimensionNumbersAttr. Если пустая строка, значение по умолчанию — ("NCHW", "OIHW", "NCHW") (для свёртки 2D). |
rhs_quantization_axis | Необязательный int. По умолчанию -1. Указывает индекс размерности тензора, где применяется квантование по оси для срезов по этой размерности. Если установлено в -1 (по умолчанию), это указывает квантование по тензору. Для rhs поддерживается только квантование по тензору или по каналу вдоль kernel_output_feature_dimension. Таким образом, этот атрибут должен быть установлен в -1 или dimension_numbers.kernel_output_feature_dimension. Другие значения приведут к ошибке при создании OpKernel. |
name | Название операции (необязательно). |
| Возвращаемое значение | |
|---|---|
A 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/UniformQuantizedConvolutionHybrid