Altifigence Academy

6 / 24 · Khái niệm

Thang và điểm 0

Với sx=0.25,zx=128, mã đệm và giá trị thực của q=132 là gì? Mã bias nào biểu diễn 0.75 với sw=0.5?

Mã cho số 0 thực

Lượng tử hóa affine dùng thang dương s và điểm 0 nguyên z. Quy ước số nguyên làm tròn x/s về số nguyên gần nhất, chọn số chẵn khi đúng giữa, cộng z, rồi bão hòa về phạm vi lưu trữ. Giải lượng tử hóa diễn giải mã xấp xỉ s(q−z). Ánh xạ giá trị thực lên lưới số nguyên thường làm mất thông tin.

q=clip⁡(roundEven⁡(x/s)+z,qmin,qmax)q=\operatorname{clip}(\operatorname{roundEven}(x/s)+z,q_{min},q_{max})

Với đầu vào uint8 s=0.25,z=128, số 0 thực là mã 128. Mã 130 và 126 biểu diễn 0.5 và −0.5. Ngược lại mã đệm thô 0 sẽ biểu diễn −32. Bộ đệm lưu mã thô phải chèn z cho đệm. Bộ đệm lưu mã đã trừ điểm 0 chèn số nguyên 0. Đánh dấu điểm chuyển đổi đó trong đường dữ liệu.

Tính tích vô hướng

Trừ 128 khỏi mã đầu vào [130,126] để được [2,−2]. Trọng số [3,−2] dùng thang 0.5 và điểm 0 bằng 0. Tích lũy 2×3+(−2)×(−2)=10. Thang thực của bộ tích lũy là 0.25×0.5=0.125, nên kết quả thực 1.25. Với thang đầu ra 0.25 và điểm 0 128, nó thành mã 133. Điểm 0 trọng số khác 0 cũng phải được trừ trước khi nhân.

Lượng tử hóa theo tensor dùng chung thang. Lượng tử hóa trọng số theo kênh cần bias và chuyển đổi đầu ra riêng theo kênh. Nếu hai kênh đầu ra có thang trọng số 0.5 và 0.25, mã bộ tích lũy mười biểu diễn lần lượt 1.25 và 0.625. Tính linh hoạt phần mềm không xác lập hỗ trợ phần cứng cho cách nào.

Lượng tử hóa 0.625 tại thang 0.25 cho trường hợp giữa 2.5, làm tròn thành hai và mã 130. Giải lượng tử hóa cho 0.5, sai số −0.125. Đầu vào 0.375 cũng ánh xạ tới mã đó. Sai số lưới lượng tử khác sai số bão hòa: cắt đầu vào ngoài phạm vi có thể vượt nửa bước thang. So sánh quy tắc số nguyên với ONNX QuantizeLinear. Bài tập cố ý chỉ triển khai tập con int8/uint8 nhỏ.

Tự thử

Với sx=0.25,zx=128, mã đệm và giá trị thực của q=132 là gì? Mã bias nào biểu diễn 0.75 với sw=0.5?

Đọc giải thích

Đệm thô là mã 128 và q=132 biểu diễn một. Thang bộ tích lũy là 0.125, nên mã bias là 0.75/0.125=6.

Lựa chọn áp dụng cho trình duyệt này. Có thể đổi ở chân trang bất cứ lúc nào.