QuantizeDownAndShrinkRange

lớp cuối cùng công khai QuantizeDownAndShrinkRange

Chuyển đổi tenxơ 'đầu vào' được lượng tử hóa thành 'đầu ra' có độ chính xác thấp hơn, bằng cách sử dụng

phân phối thực tế của các giá trị để tối đa hóa việc sử dụng độ sâu bit thấp hơn và điều chỉnh phạm vi tối thiểu và tối đa đầu ra tương ứng.

[input_min, input_max] là các số float vô hướng chỉ định phạm vi để diễn giải float của dữ liệu 'đầu vào'. Ví dụ: nếu input_min là -1.0f và input_max là 1.0f và chúng ta đang xử lý dữ liệu lượng tử hóa quint16, thì giá trị 0 trong dữ liệu 16 bit sẽ được hiểu là -1.0f và 65535 có nghĩa là 1.0f.

Toán tử này cố gắng thu được độ chính xác cao nhất có thể vào đầu ra có độ sâu bit thấp hơn bằng cách tính toán các giá trị tối thiểu và tối đa thực tế được tìm thấy trong dữ liệu. Ví dụ: có thể đầu vào quint16 đó không có giá trị nào thấp hơn 16.384 và không có giá trị nào cao hơn 49.152. Điều đó có nghĩa là thực tế chỉ cần một nửa phạm vi, tất cả các cách diễn giải float nằm trong khoảng từ -0,5f đến 0,5f, vì vậy nếu chúng ta muốn nén dữ liệu thành đầu ra quint8, chúng ta có thể sử dụng phạm vi đó thay vì -1,0f đến 1,0 theo lý thuyết f được đề xuất bởi đầu vào tối thiểu và tối đa.

Trong thực tế, điều này hữu ích nhất để lấy đầu ra từ các hoạt động như QuantizedMatMul có thể tạo ra đầu ra có độ sâu bit cao hơn đầu vào của chúng và có thể có phạm vi đầu ra tiềm năng lớn, nhưng trên thực tế có sự phân bổ các giá trị đầu vào chỉ sử dụng một phần nhỏ của phạm vi có thể. Bằng cách đưa đầu ra đó vào toán tử này, chúng ta có thể giảm nó từ 32 bit xuống còn 8 với độ chính xác bị mất ở mức tối thiểu.

Hằng số

Sợi dây OP_NAME Tên của op này, được biết đến bởi công cụ lõi TensorFlow

Phương pháp công cộng

tĩnh <U mở rộng TType > QuantizeDownAndShrinkRange <U>
tạo ( Phạm vi phạm vi, Toán hạng <? mở rộng TType > đầu vào, Toán hạng < TFloat32 > inputMin, Toán hạng < TFloat32 > inputMax, Lớp <U> outType)
Phương thức gốc để tạo một lớp bao bọc một thao tác QuantizeDownAndShrinkRange mới.
Đầu ra <U>
Đầu ra < TFloat32 >
đầu raMax ()
Giá trị float mà giá trị đầu ra lượng tử hóa tối đa đại diện.
Đầu ra < TFloat32 >
đầu raMin ()
Giá trị float mà giá trị đầu ra lượng tử hóa tối thiểu đại diện.

Phương pháp kế thừa

Hằng số

Chuỗi cuối cùng tĩnh công khai OP_NAME

Tên của op này, được biết đến bởi công cụ lõi TensorFlow

Giá trị không đổi: "QuantizeDownAndShrinkRange"

Phương pháp công cộng

public static QuantizeDownAndShrinkRange <U> tạo ( Phạm vi phạm vi, Toán hạng <? mở rộng TType > đầu vào, Toán hạng < TFloat32 > inputMin, Toán hạng < TFloat32 > inputMax, Class<U> outType)

Phương thức gốc để tạo một lớp bao bọc một thao tác QuantizeDownAndShrinkRange mới.

Thông số
phạm vi phạm vi hiện tại
đầu vào tối thiểu Giá trị float mà giá trị đầu vào lượng tử hóa tối thiểu đại diện.
đầu vàoMax Giá trị float mà giá trị đầu vào lượng tử hóa tối đa đại diện.
outType Loại đầu ra. Nên có độ sâu bit thấp hơn Tinput.
Trả lại
  • một phiên bản mới của QuantizeDownAndShrinkRange

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

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

Giá trị float mà giá trị đầu ra lượng tử hóa tối đa đại diện.

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

Giá trị float mà giá trị đầu ra lượng tử hóa tối thiểu đại diện.