tf.raw_ops.UniformQuantizedConvolutionHybrid

Perform hybrid quantized convolution of float Tensor lhs and quantized Tensor rhs.

Given float lhs and quantized rhs, internally performs quantization on lhs, and then performs quantized convolution on quantized lhs and rhs.

The internal quantization on lhs is a quantization to Trhs, dynamic range, per-batch (per-axis along axis dimension_numbers.input_batch_dimension), asymmetric, and not narrow range (the range is [Trhs_MIN, Trhs_MAX]).

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

rhs must be quantized Tensor, where its data value is quantized using the formula: quantized_data = clip(original_data / scale + zero_point, quantization_min_val, quantization_max_val).

lhs A Tensor. Must be one of the following types: float32. Must be a non-quantized Tensor of Tlhs, rank >= 3.
rhs A Tensor. Must be one of the following types: qint8. Must be a quantized Tensor of Trhs, same rank as lhs.
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_point when quantizing original data that rhs represents. Same shape condition as rhs_scales.
Tout A tf.DType from: tf.float32. The type of output Tensor.
padding A string. string from: "SAME", "VALID", or "EXPLICIT", indicating the type of padding algorithm to use.
rhs_quantization_min_val An int. The min value of the quantized data stored in rhs. For example, if Trhs 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 Trhs 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 Attr is "EXPLICIT", must be set as a list indicating the explicit paddings at the start and end of each lhs spatial dimension. Otherwise, this Attr is 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 spatial_dimensionsi.

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).
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 attribute must be set to -1 or dimension_numbers.kernel_output_feature_dimension. Other values will raise error at OpKernel construction.
name A name for the operation (optional).

A Tensor of type Tout.