UniformRequantize

lớp cuối cùng công khai Thống nhấtRequantize

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()).

Đầu ra công khai đầu ra <U> ()

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 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.