Cho `đầu vào` tenxơ được lượng tử hóa, hãy lượng tử hóa lại nó bằng các tham số lượng tử hóa mới.
Cho tensor lượng tử hóa `input`, được lượng tử hóa bằng {input_scales, input_zero_points, input_quantization_axis, input_quantization_min_val, input_quantization_max_val}, lượng tử hóa lại nó thành tensor, được lượng tử hóa bằng {output_scales, out_zero_points, out_quantization_axis, out_quantization_min_val, out_quantization_max_val}. Việc lượng tử hóa lại được thực hiện bằng cách sử dụng công thức: out_quantized_data = clip( (input_quantized_data - input_zero_point) * (input_scale / out_scale) + out_zero_point, out_quantization_min_val, out_quantization_max_val)
Các trường hợp hỗ trợ lượng tử hóa trên mỗi tensor và mỗi trục như sau:
- mỗi tensor -> mỗi tensor
- trên mỗi tensor -> trên mỗi trục
- trên mỗi trục -> trên mỗi trục trong đó input_quantization_axis bằng out_quantization_axis. tức là ít nhất một trong số input_quantization_axis và out_quantization_axis phải là -1 hoặc hai phải bằng nhau.
Các lớp lồng nhau
lớp học | Đồng phụcRequantize.Options | Các thuộc tính tùy chọn cho UniformRequantize |
Phương pháp công cộng
Đầu ra <U> | asOutput () Trả về phần điều khiển tượng trưng của một tenxơ. |
tĩnh <U, T> Đồng nhấtRequantize <U> | tạo ( Phạm vi phạm vi, Đầu vào toán hạng <T>, Toán hạng <Float> inputScales, Toán hạng <Integer> inputZeroPoints, Toán tử <Float> đầu raScales, Toán hạng <Integer> đầu raZeroPoints, Lớp<U> Tout, Đầu vào dàiQuantizationMinVal, Đầu vào dàiQuantizationMaxVal, Đầu ra dàiQuantizationMinVal, Đầu ra dàiQuantizationMaxVal, Tùy chọn... tùy chọn) Phương thức xuất xưởng để tạo một lớp bao bọc một thao tác Thống nhấtRequantize mới. |
tĩnh Thống nhấtRequantize.Options | trục đầu vàoQuantizationAxis (Trục lượng tử hóa đầu vào dài) |
Đầu ra <U> | đầu ra () Tensor lượng tử hóa đầu ra của Tout, có hình dạng giống với đầu vào. |
tĩnh Thống nhấtRequantize.Options | trục lượng tử đầu ra (Trục lượng tử hóa đầu ra dài) |
Phương pháp kế thừa
Phương pháp công cộng
Đầu ra công khai <U> asOutput ()
Trả về phần điều khiển tượng trưng của một tenxơ.
Đầu vào của các hoạt động TensorFlow là đầu ra của một hoạt động TensorFlow khác. Phương pháp này được sử dụng để thu được một thẻ điều khiển mang tính biểu tượng đại diện cho việc tính toán đầu vào.
public static Thống nhấtRequantize <U> tạo ( Phạm vi phạm vi , Đầu vào toán hạng <T>, Toán hạng <Float> inputScales, Toán hạng <Integer> inputZeroPoints, Toán hạng <Float> đầu raScales, Toán hạng <Integer> đầu raZeroPoints, Lớp<U> Tout, Đầu vào dàiQuantizationMinVal, Đầu vào dàiQuantizationMaxVal, Đầu ra dàiQuantizationMinVal, Đầu ra dàiQuantizationMaxVal, Tùy chọn... tùy chọn)
Phương thức xuất xưởng để tạo một lớp bao bọc một thao tác Thống nhấtRequantize mới.
Thông số
phạm vi | phạm vi hiện tại |
---|---|
đầu vào | Phải là Tensor của Thiếc. |
đầu vàoScales | (Các) giá trị float được sử dụng làm (các) thang đo khi lượng tử hóa dữ liệu gốc mà `input` đại diện. Phải là Tensor vô hướng nếu lượng tử hóa_axis là -1 (lượng tử hóa trên mỗi tensor), nếu không thì Tensor 1D có kích thước (input.dim_size(quantization_axis),) (lượng tử hóa trên mỗi trục). |
đầu vàoZeroPoints | (Các) giá trị int32 được sử dụng làm (các) điểm 0 khi lượng tử hóa dữ liệu gốc mà `input` đại diện. Tình trạng hình dạng tương tự như vảy. |
đầu raThang đo | (Các) giá trị float được sử dụng làm (các) thang đo mới để lượng tử hóa dữ liệu gốc mà `đầu vào` đại diện. Phải là Tensor vô hướng nếu lượng tử hóa_axis là -1 (lượng tử hóa trên mỗi tensor), nếu không thì Tensor 1D có kích thước (input.dim_size(quantization_axis),) (lượng tử hóa trên mỗi trục). |
đầu raZeroPoints | (Các) giá trị int32 sẽ sử dụng làm (các) điểm zero mới để lượng tử hóa dữ liệu gốc mà `input` đại diện. Tình trạng hình dạng tương tự như vảy. |
Tout | Loại Tensor đầu ra. Một tf.DType từ: tf.qint8, tf.qint32 |
đầu vàoQuantizationMinVal | Giá trị lượng tử hóa tối thiểu được sử dụng khi lượng tử hóa dữ liệu gốc mà `đầu vào` đại diện. Mục đích của thuộc tính này thường (nhưng không giới hạn) để biểu thị phạm vi hẹp, trong đó giá trị này được đặt thành: `(Tin thấp nhất) + 1` nếu phạm vi hẹp và `(Tin thấp nhất)` nếu không. Ví dụ: nếu Tin là qint8 thì giá trị này được đặt thành -127 nếu phạm vi lượng tử hóa hẹp hoặc -128 nếu không. |
đầu vàoQuantizationMaxVal | Giá trị tối đa lượng tử hóa được sử dụng khi lượng tử hóa dữ liệu gốc mà `đầu vào` đại diện. Mục đích của thuộc tính này thường (nhưng không giới hạn) là biểu thị phạm vi hẹp, trong đó thuộc tính này được đặt thành: `(Tout max)` cho cả phạm vi hẹp và không phải phạm vi hẹp. Ví dụ: nếu Tin là qint8 thì giá trị này được đặt thành 127. |
đầu raLượng tử hóaMinVal | Giá trị lượng tử hóa tối thiểu mới để lượng tử hóa dữ liệu gốc mà `đầu vào` đại diện. |
đầu raQuantizationMaxVal | Giá trị tối đa lượng tử hóa mới để lượng tử hóa dữ liệu gốc mà `đầu vào` đại diện. |
tùy chọn | mang các giá trị thuộc tính tùy chọn |
Trả lại
- một phiên bản mới của UnityRequantize
tĩnh công khai UnityRequantize.Options inputQuantizationAxis (Trục đầu vàoQuantization dài)
Thông số
trục lượng tử hóa đầu vào | Trục lượng tử hóa được sử dụng khi lượng tử hóa dữ liệu gốc mà `đầu vào` đại diện. Biểu thị chỉ số thứ nguyên của tensor trong đó lượng tử hóa trên mỗi trục được áp dụng cho các lát cắt dọc theo thứ nguyên đó. Nếu được đặt thành -1 (mặc định), điều này biểu thị lượng tử hóa trên mỗi tensor. Nếu không, nó phải được đặt trong phạm vi [0, input.dims()). |
---|
tĩnh công khai Thống nhấtRequantize.Options đầu raQuantizationAxis (Đầu ra dàiQuantizationAxis)
Thông số
trục lượng tử hóa đầu ra | Trục lượng tử hóa mới sẽ sử dụng để lượng tử hóa dữ liệu gốc mà `đầu vào` đại diện. |
---|