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
)