QuantizeDownAndShrinkRange

kelas akhir publik QuantizeDownAndShrinkRange

Ubah tensor 'input' yang terkuantisasi menjadi 'output' dengan presisi lebih rendah, menggunakan

distribusi nilai aktual untuk memaksimalkan penggunaan kedalaman bit yang lebih rendah dan menyesuaikan rentang output min dan max yang sesuai.

[input_min, input_max] adalah float skalar yang menentukan rentang interpretasi float dari data 'input'. Misalnya, jika input_min adalah -1.0f dan input_max adalah 1.0f, dan kita berurusan dengan data terkuantisasi quint16, maka nilai 0 dalam data 16-bit harus ditafsirkan sebagai -1.0f, dan 65535 berarti 1.0f.

Operator ini mencoba memeras presisi sebanyak mungkin ke dalam keluaran dengan kedalaman bit lebih rendah dengan menghitung nilai min dan maks aktual yang ditemukan dalam data. Misalnya, mungkin masukan quint16 tidak memiliki nilai yang lebih rendah dari 16.384 dan tidak ada yang lebih tinggi dari 49.152. Itu berarti hanya setengah rentang yang benar-benar diperlukan, semua interpretasi float berada di antara -0,5f dan 0,5f, jadi jika kita ingin mengompresi data menjadi keluaran quint8, kita dapat menggunakan rentang tersebut daripada menggunakan -1,0f hingga 1,0 secara teoritis. f yang disarankan oleh input min dan maks.

Dalam praktiknya, ini paling berguna untuk mengambil keluaran dari operasi seperti QuantizedMatMul yang dapat menghasilkan keluaran dengan kedalaman bit lebih tinggi daripada masukannya dan mungkin memiliki rentang keluaran potensial yang besar, namun dalam praktiknya memiliki distribusi nilai masukan yang hanya menggunakan sebagian kecil dari nilai masukan. jangkauan yang mungkin. Dengan memasukkan keluaran tersebut ke operator ini, kami dapat menguranginya dari 32 bit menjadi 8 dengan kehilangan akurasi yang minimal.

Konstanta

Rangkaian OP_NAME Nama operasi ini dikenal dengan mesin inti TensorFlow

Metode Publik

statis <U memperluas TType > QuantizeDownAndShrinkRange <U>
buat ( Lingkup lingkup, Operan <? extends TType > input, Operan < TFloat32 > inputMin, Operan < TFloat32 > inputMax, Kelas<U> outType)
Metode pabrik untuk membuat kelas yang membungkus operasi QuantizeDownAndShrinkRange baru.
Keluaran <U>
Keluaran < TFloat32 >
keluaran Maks ()
Nilai float yang diwakili oleh nilai output terkuantisasi maksimum.
Keluaran < TFloat32 >
keluaranMin ()
Nilai mengambang yang diwakili oleh nilai keluaran terkuantisasi minimum.

Metode Warisan

Konstanta

String akhir statis publik OP_NAME

Nama operasi ini dikenal dengan mesin inti TensorFlow

Nilai Konstan: "QuantizeDownAndShrinkRange"

Metode Publik

public static QuantizeDownAndShrinkRange <U> buat ( Lingkup lingkup , Operan <? extends TType > input, Operan < TFloat32 > inputMin, Operan < TFloat32 > inputMax, Kelas<U> outType)

Metode pabrik untuk membuat kelas yang membungkus operasi QuantizeDownAndShrinkRange baru.

Parameter
cakupan ruang lingkup saat ini
masukanMin Nilai float yang diwakili oleh nilai masukan terkuantisasi minimum.
masukanMaks Nilai float yang diwakili oleh nilai masukan terkuantisasi maksimum.
tipe keluar Jenis keluarannya. Harus memiliki kedalaman bit yang lebih rendah daripada Tinput.
Kembali
  • contoh baru QuantizeDownAndShrinkRange

Keluaran publik <U> keluaran ()

Keluaran publik < TFloat32 > keluaranMaks ()

Nilai float yang diwakili oleh nilai output terkuantisasi maksimum.

Keluaran publik < TFloat32 > keluaranMin ()

Nilai mengambang yang diwakili oleh nilai keluaran terkuantisasi minimum.