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> | |
Keluaran <U> | keluaran () |
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
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 < TFloat32 > keluaranMaks ()
Nilai float yang diwakili oleh nilai output terkuantisasi maksimum.