tf.raw_ops.UniformQuantizedConvolution

Perform quantized convolution of quantized Tensor lhs and quantized Tensor rhs. to make quantized output.

Given quantized lhs and quantized rhs, performs quantized dot on lhs and rhs to make quantized output.

lhs and rhs must be Tensors of same rank, and meet following shape conditions.

  • 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 and rhs must be quantized Tensor, where data value is quantized using the formula:

quantized_data = clip(original_data / scale + zero_point, quantization_min_val, quantization_max_val)

output is also quantized, using the same formula. If rhs is per-tensor quantized, output must be also per-tensor quantized.

lhs A Tensor. Must be one of the following types: qint8. Must be a quantized tensor, rank >= 3.
rhs A Tensor. Must have the same type as lhs. Must be a quantized tensor, same rank as lhs.
lhs_scales A Tensor of type float32. The float value(s) used as scale factors when quantizing the original data that lhs represents. Must be a scalar Tensor (lhs supports only per-tensor quantization).
lhs_zero_points A Tensor of type int32. The int32 value(s) used as zero points when quantizing original data that lhs represents. Same shape condition as lhs_scales.
rhs_scales A Tensor of type float32. The float value(s) used as scale factors when quantizing the original data that rhs represents. Must be a scalar Tensor for per-tensor quantization, or 1D Tensor of size rhs.dim_size(kernel_output_feature_dimension), for per-channel quantization.
rhs_zero_points A Tensor of type int32. The int32 value(s) used as zero points when quantizing original data that rhs represents. Same shape condition as rhs_scales.
output_scales A Tensor of type float32. The float value(s) to use as scale factors when quantizing original data that output represents. Must be a scalar Tensor for per-tensor quantization, or 1D Tensor of size rhs.dim_size(kernel_output_feature_dimension)

  • which is equal to output.dim_size(output_feature_dimension), for per-channel quantization. If rhs is per-tensor quantized, output must be also per-tensor quantized. This means that if rhs_scales and rhs_zero_points are scalar Tensors, output_scales and output_zero_points must be scalar Tensors as well.
output_zero_points A Tensor of type int32. The int32 value(s) used as zero points when quantizing original data that output represents. Same shape condition as output_scales.
Tout A tf.DType from: tf.qint32. The type of output Tensor.
padding A string. string from: "SAME", "VALID", or "EXPLICIT", indicating the type of padding algorithm to use.
lhs_quantization_min_val An int. The min value of the quantized data stored in lhs. For example, if Tin is qint8, this must be set to -127 if narrow range quantized or -128 if not.
lhs_quantization_max_val An int. The max value of the quantized data stored in lhs. For example, if Tin is qint8, this must be set to 127.
rhs_quantization_min_val An int. The min value of the quantized data stored in rhs. For example, if Tin is qint8, this must be set to -127 if narrow range quantized or -128 if not.
rhs_quantization_max_val An int. The max value of the quantized data stored in rhs. For example, if Tin is qint8, this must be set to 127.
output_quantization_min_val An int. The min value of the quantized data stored in output. For example, if Tout is qint8, this must be set to -127 if narrow range quantized or -128 if not.
output_quantization_max_val An int. The max value of the quantized data stored in output. For example, if Tout is qint8, this must be set to 127.
window_strides An optional list of ints. Defaults to []. The stride of the sliding window for each spatial dimension of lhs. Must be an empty list (default) or a list of size (number of spatial dimensions). If an empty list is provided, the stride for each spatial dimension is set to 1.
explicit_padding An optional list of ints. Defaults to []. If padding is "EXPLICIT", must be set as a list indicating the explicit paddings at the start and end of each lhs spatial dimension. Otherwise, this must be empty.

(If used,) Must be a list of size 2 * (number of lhs spatial dimensions), where (explicit_padding[2 * i], explicit_padding[2 * i + 1]) indicates (start_padding, end_padding) of spatial_dimensions[i].

lhs_dilation An optional list of ints. Defaults to []. The dilation factor to apply in each spatial dimension of lhs. Must be an empty list (default) or a list of size (number of lhs spatial dimensions). If empty list, the dilation for each lhs spatial dimension is set to 1.
rhs_dilation An optional list of ints. Defaults to []. The dilation factor to apply in each spatial dimension of rhs. Must be an empty list (default) or a list of size (number of rhs spatial dimensions). If empty list, the dilation for each rhs spatial dimension is set to 1.
batch_group_count An optional int. Defaults to 1. The number of batch groups. Used for grouped filters. Must be a divisor of output_feature.
feature_group_count An optional int. Defaults to 1. The number of feature groups. Used for grouped convolutions. Must be a divisor of both lhs_feature and output_feature.
dimension_numbers An optional string. Defaults to "". Structure of dimension information for the convolution op. Must be an empty string (default) or a serialized string of tensorflow.UniformQuantizedConvolutionDimensionNumbersAttr proto. If empty string, the default is ("NCHW", "OIHW", "NCHW") (for a 2D convolution).
lhs_quantization_axis An optional int. Defaults to -1. Indicates the dimension index of the tensor where per-axis quantization is applied for the slices along that dimension. If set to -1 (default), this indicates per-tensor quantization. For the lhs, only per-tensor quantization is supported. Thus, this must be set to -1. Other values will raise error at OpKernel construction.
rhs_quantization_axis An optional int. Defaults to -1. Indicates the dimension index of the tensor where per-axis quantization is applied for the slices along that dimension. If set to -1 (default), this indicates per-tensor quantization. For the rhs, only per-tensor quantization or per-channel quantization along kernel_output_feature_dimension is supported. Thus, this must be set to -1 or dimension_numbers.kernel_output_feature_dimension. Other values will raise error at OpKernel construction.
output_quantization_axis An optional int. Defaults to -1. Indicates the dimension index of the tensor where per-axis quantization is applied for the slices along that dimension. If set to -1 (default), this indicates per-tensor quantization. For the output, only per-tensor quantization or per-channel quantization along output_feature_dimension is supported. Thus, this must be set to -1 or dimension_numbers.output_feature_dimension. Other values will raise error at OpKernel construction.
name A name for the operation (optional).

A Tensor of type Tout.