torch.fake_quantize_per_channel_affine¶
- torch.fake_quantize_per_channel_affine(input, scale, zero_point, axis, quant_min, quant_max) Tensor ¶
返回一个新张量,其中
input
的数据在每个通道上使用scale
、zero_point
、quant_min
和quant_max
进行伪量化,跨由axis
指定的通道。- 参数:
input (Tensor) – 输入值,在
torch.float32
scale(张量)- 量化尺度,每个通道在
torch.float32
zero_point(张量)- 量化 zero_point,每个通道在
torch.int32
或torch.half
或torch.float32
axis(int32)- 通道轴
quant_min(int64)- 量化域的下界
quant_max(int64)- 量化域的上界
- 返回值:
一个新的按通道 fake_quantized
torch.float32
张量- 返回类型:
示例:
>>> x = torch.randn(2, 2, 2) >>> x tensor([[[-0.2525, -0.0466], [ 0.3491, -0.2168]], [[-0.5906, 1.6258], [ 0.6444, -0.0542]]]) >>> scales = (torch.randn(2) + 1) * 0.05 >>> scales tensor([0.0475, 0.0486]) >>> zero_points = torch.zeros(2).to(torch.int32) >>> zero_points tensor([0, 0]) >>> torch.fake_quantize_per_channel_affine(x, scales, zero_points, 1, 0, 255) tensor([[[0.0000, 0.0000], [0.3405, 0.0000]], [[0.0000, 1.6134], [0.6323, 0.0000]]])