fake_quantize_affine¶
- torchao.quantization.fake_quantize_affine(input: Tensor, block_size: Tuple[int, ...], scale: Tensor, zero_point: Optional[Tensor], quant_dtype: dtype, quant_min: Optional[Union[int, float]] = None, quant_max: Optional[Union[int, float]] = None, zero_point_domain: ZeroPointDomain = ZeroPointDomain.INT) Tensor [source]¶
用于量化感知训练 (QAT) 的通用假量化操作。这等效于调用
quantize_affine
+dequantize_affine
,但不涉及 dtype 转换。- 参数:
input (torch.Tensor) – 原始的 float32、float16 或 bfloat16 张量
block_size – (Tuple[int, …]):量化粒度,这意味着共享相同量化参数的张量元素的大小,例如当大小与输入张量维度相同时,我们使用的是逐张量量化
scale (float) – 仿射量化的量化参数
zero_point (int) – 仿射量化的量化参数
quant_dtype (torch.dtype) – 用于确定和验证 quant_min 和 quant_max 值的期望量化数据类型。
quant_min (Optional[int]) – 输出张量的最小量化值,如果未指定,将根据数据类型推导
quant_max (Optional[int]) – 输出张量的最大量化值,如果未指定,将根据数据类型推导
zero_point_domain (ZeroPointDomain) – 零点所在的域,应为整数或浮点数;如果零点在整数域中,则在量化过程中将零点添加到量化整数值;如果零点在浮点域中,则在量化过程中将零点从浮点数(未量化)值中减去;默认值为 ZeroPointDomain.INT