tf.raw_ops.UniformQuantizedConvolutionHybrid
Выполняет гибридную квантованную свёртку тензора с плавающей запятой 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
)
Для тензора с плавающей запятой 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 | Tensor. Должен иметь один из следующих типов: float32. Должен быть неквантованным тензором типа Tlhs с рангом >= 3. |
rhs | Tensor. Должен иметь один из следующих типов: qint8. Должен быть квантованным тензором типа Trhs и иметь тот же ранг, что и lhs. |
rhs_scales | Tensor типа float32. Значение(я) с плавающей запятой, используемое(ые) как коэффициенты масштабирования при квантовании исходных данных, представленных rhs. Должен быть скалярным тензором для поканального квантования или одномерным тензором размера rhs.dim_size(kernel_output_feature_dimension) для поканального квантования. |
rhs_zero_points | Tensor типа int32. Значение(я) int32, используемое(ые) как zero_point при квантовании исходных данных, представленных rhs. То же условие для формы, что и для rhs_scales. |
Tout | tf.DType из: tf.float32. Тип выходного тензора. |
padding | string. Строка из: "SAME", "VALID" или "EXPLICIT", указывающая тип используемого алгоритма заполнения. |
rhs_quantization_min_val | int. Минимальное значение квантованных данных, хранящихся в rhs. Например, если Trhs имеет тип qint8, здесь необходимо указать -127 для квантования с узким диапазоном или -128 в противном случае. |
rhs_quantization_max_val | 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]) задаёт начало и конец пространственного измерения i. |
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") (для двумерной свёртки). |
rhs_quantization_axis | Необязательный int. По умолчанию — -1. Указывает индекс измерения тензора, вдоль которого для срезов применяется поканальное квантование. Значение -1 (по умолчанию) означает покомпонентное квантование тензора. Для rhs поддерживается только покомпонентное квантование или поканальное квантование вдоль kernel_output_feature_dimension. Поэтому для этого атрибута необходимо указать -1 или dimension_numbers.kernel_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/UniformQuantizedConvolutionHybrid