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