aliran tensor:: operasi:: QuantizeDownAndShrinkRange
#include <math_ops.h>
Ubah tensor 'masukan' yang terkuantisasi menjadi 'keluaran' dengan presisi lebih rendah, menggunakan.
Ringkasan
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 rentang teoretis -1,0f hingga 1,0 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.
Argumen:
- ruang lingkup: Objek Lingkup
- input_min: Nilai float yang diwakili oleh nilai input terkuantisasi minimum.
- input_max: Nilai float yang diwakili oleh nilai input terkuantisasi maksimum.
- out_type: Jenis keluaran. Harus memiliki kedalaman bit yang lebih rendah daripada Tinput.
Pengembalian:
- keluaran
Output
-
Output
output_min: Nilai float yang diwakili oleh nilai output terkuantisasi minimum. -
Output
output_max: Nilai float yang diwakili oleh nilai output terkuantisasi maksimum.
Konstruktor dan Destruktor | |
---|---|
QuantizeDownAndShrinkRange (const :: tensorflow::Scope & scope, :: tensorflow::Input input, :: tensorflow::Input input_min, :: tensorflow::Input input_max, DataType out_type) |
Atribut publik | |
---|---|
operation | |
output | |
output_max | |
output_min |
Atribut publik
operasi
Operation operation
keluaran
::tensorflow::Output output
keluaran_maks
::tensorflow::Output output_max
keluaran_menit
::tensorflow::Output output_min
Fungsi publik
QuantizeDownAndShrinkRange
QuantizeDownAndShrinkRange( const ::tensorflow::Scope & scope, ::tensorflow::Input input, ::tensorflow::Input input_min, ::tensorflow::Input input_max, DataType out_type )