torch.quantize_per_channel#
- torch.quantize_per_channel(input,scales,zero_points,axis,dtype)→Tensor#
Converts a float tensor to a per-channel quantized tensor with given scales and zero points.
- Parameters
input (Tensor) – float tensor to quantize
scales (Tensor) – float 1D tensor of scales to use, size should match
input.size(axis)zero_points (int) – integer 1D tensor of offset to use, size should match
input.size(axis)axis (int) – dimension on which apply per-channel quantization
dtype (
torch.dtype) – the desired data type of returned tensor.Has to be one of the quantized dtypes:torch.quint8,torch.qint8,torch.qint32
- Returns
A newly quantized tensor
- Return type
Example:
>>>x=torch.tensor([[-1.0,0.0],[1.0,2.0]])>>>torch.quantize_per_channel(x,torch.tensor([0.1,0.01]),torch.tensor([10,0]),0,torch.quint8)tensor([[-1., 0.], [ 1., 2.]], size=(2, 2), dtype=torch.quint8, quantization_scheme=torch.per_channel_affine, scale=tensor([0.1000, 0.0100], dtype=torch.float64), zero_point=tensor([10, 0]), axis=0)>>>torch.quantize_per_channel(x,torch.tensor([0.1,0.01]),torch.tensor([10,0]),0,torch.quint8).int_repr()tensor([[ 0, 10], [100, 200]], dtype=torch.uint8)