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 | Тензор Tensor. Должен иметь один из следующих типов: qint8. Должен быть квантованным тензором ранга >= 3. |
rhs | Тензор Tensor. Должен иметь тот же тип, что и lhs. Должен быть квантованным тензором того же ранга, что и lhs. |
lhs_scales | Тензор Tensor типа float32. Значение (значения) с плавающей запятой, используемые в качестве коэффициентов масштаба при квантовании исходных данных, представленных lhs. Должен быть скаляром Tensor (lhs поддерживает только квантование по тензору). |
lhs_zero_points | Тензор Tensor типа int32. Значение (значения) int32, используемые в качестве нулевых точек при квантовании исходных данных, представленных lhs. Должен удовлетворять тому же условию формы, что и lhs_scales. |
rhs_scales | Тензор Tensor типа float32. Значение (значения) с плавающей запятой, используемые в качестве коэффициентов масштаба при квантовании исходных данных, представленных rhs. Для квантования по тензору должен быть скаляром Tensor, а для поканального квантования — одномерным Tensor размера rhs.dim_size(kernel_output_feature_dimension). |
rhs_zero_points | Тензор Tensor типа int32. Значение (значения) int32, используемые в качестве нулевых точек при квантовании исходных данных, представленных rhs. Должен удовлетворять тому же условию формы, что и rhs_scales. |
output_scales | Тензор Tensor типа float32. Значение (значения) с плавающей запятой, используемые в качестве коэффициентов масштаба при квантовании исходных данных, представленных output. Для квантования по тензору должен быть скаляром Tensor, а для поканального квантования — одномерным Tensor размера rhs.dim_size(kernel_output_feature_dimension)
|
output_zero_points | Тензор Tensor типа int32. Значение (значения) int32, используемые в качестве нулевых точек при квантовании исходных данных, представленных выходными данными. Должен удовлетворять тому же условию формы, что и output_scales. |
Tout | tf.DType из: tf.qint32. Тип output Tensor. |
padding | Строка string из: "SAME", "VALID" или "EXPLICIT", указывающая тип используемого алгоритма заполнения. |
lhs_quantization_min_val | int. Минимальное значение квантованных данных, хранящихся в lhs. Например, если Tin — qint8, это значение должно быть -127 для квантования с узким диапазоном или -128 в противном случае. |
lhs_quantization_max_val | int. Максимальное значение квантованных данных, хранящихся в lhs. Например, если Tin — qint8, это значение должно быть 127. |
rhs_quantization_min_val | int. Минимальное значение квантованных данных, хранящихся в rhs. Например, если Tin — qint8, это значение должно быть -127 для квантования с узким диапазоном или -128 в противном случае. |
rhs_quantization_max_val | int. Максимальное значение квантованных данных, хранящихся в rhs. Например, если Tin — qint8, это значение должно быть 127. |
output_quantization_min_val | int. Минимальное значение квантованных данных, хранящихся в output. Например, если Tout — qint8, это значение должно быть -127 для квантования с узким диапазоном или -128 в противном случае. |
output_quantization_max_val | 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 | Имя операции (необязательно). |
| Возвращает | |
|---|---|
Тензор 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/UniformQuantizedConvolution