Dequantize

kelas akhir publik Dekuantisasi

Dekuantisasi tensor 'input' menjadi Tensor float atau bfloat16.

[min_range, max_range] adalah pelampung skalar yang menentukan rentang keluaran. Atribut 'mode' mengontrol penghitungan mana yang digunakan untuk mengonversi nilai float ke nilai terkuantisasinya.

Dalam mode 'MIN_COMBINED', setiap nilai tensor akan mengalami hal berikut:

if T == qint8: in[i] += (range(T) + 1)/ 2.0
 out[i] = min_range + (in[i]* (max_range - min_range) / range(T))
 
di sini `range(T) = numerik_batas ::maks() - batas_numerik ::menit()`

Contoh Mode MIN_COMBINED

Jika masukan berasal dari QuantizedRelu6, jenis keluarannya adalah quint8 (kisaran 0-255) tetapi kisaran QuantizedRelu6 yang mungkin adalah 0-6. Oleh karena itu, nilai min_range dan max_range adalah 0,0 dan 6,0. Dequantize pada quint8 akan mengambil setiap nilai, dilemparkan ke float, dan dikalikan dengan 6/255. Perhatikan bahwa jika quantizedtype adalah qint8, operasi ini juga akan menambahkan setiap nilai sebesar 128 sebelum casting.

Jika modenya adalah 'MIN_FIRST', maka pendekatan ini digunakan:

num_discrete_values = 1 << (# of bits in T)
 range_adjust = num_discrete_values / (num_discrete_values - 1)
 range = (range_max - range_min) * range_adjust
 range_scale = range / num_discrete_values
 const double offset_input = static_cast<double>(input) - lowest_quantized;
 result = range_min + ((input - numeric_limits<T>::min()) * range_scale)
 
Jika modenya adalah `SCALED`, dequantisasi dilakukan dengan mengalikan setiap nilai input dengan scaling_factor. (Jadi input 0 selalu dipetakan ke 0,0).

scaling_factor ditentukan dari `min_range`, `max_range`, dan `narrow_range` dengan cara yang kompatibel dengan `QuantizeAndDequantize{V2|V3}` dan `QuantizeV2`, menggunakan algoritma berikut:

const int min_expected_T = std::numeric_limits<T>::min() +
     (narrow_range ? 1 : 0);
   const int max_expected_T = std::numeric_limits<T>::max();
   const float max_expected_T = std::numeric_limits<float>::max();
 
   const float scale_factor =
     (std::numeric_limits<T>::min() == 0) ? (max_range / max_expected_T)
                                          : std::max(min_range / min_expected_T,
                                                     max_range / max_expected_T);
 

Kelas Bersarang

kelas Dekuantisasi. Opsi Atribut opsional untuk Dequantize

Konstanta

Rangkaian OP_NAME Nama operasi ini dikenal dengan mesin inti TensorFlow

Metode Publik

Keluaran <U>
sebagai Keluaran ()
Mengembalikan pegangan simbolis tensor.
Dequantize.Options statis
sumbu (Sumbu panjang)
statis <U extends TNumber > Dequantize <U>
buat ( Lingkup lingkup, Operan <? extends TType > input, Operan < TFloat32 > minRange, Operan < TFloat32 > maxRange, Kelas<U> dtype, Opsi... opsi)
Metode pabrik untuk membuat kelas yang membungkus operasi Dequantize baru.
Dekuantisasi statis < TFloat32 >
buat ( Lingkup lingkup, Operan <? extends TType > masukan, Operan < TFloat32 > minRange, Operan < TFloat32 > maxRange, Opsi... opsi)
Metode pabrik untuk membuat kelas yang membungkus operasi Dequantize baru menggunakan tipe output default.
Dequantize.Options statis
mode (mode string)
Dequantize.Options statis
rentang sempit (rentang sempit Boolean)
Keluaran <U>

Metode Warisan

Konstanta

String akhir statis publik OP_NAME

Nama operasi ini dikenal dengan mesin inti TensorFlow

Nilai Konstan: "Dekuantisasi"

Metode Publik

Keluaran publik <U> sebagai Keluaran ()

Mengembalikan pegangan simbolis tensor.

Masukan ke operasi TensorFlow adalah keluaran dari operasi TensorFlow lainnya. Metode ini digunakan untuk mendapatkan pegangan simbolis yang mewakili perhitungan input.

Sumbu Dequantize.Options statis publik (Sumbu panjang)

public static Dequantize <U> buat ( Lingkup cakupan , Operan <? extends TType > input, Operan < TFloat32 > minRange, Operan < TFloat32 > maxRange, Kelas<U> dtype, Opsi... opsi)

Metode pabrik untuk membuat kelas yang membungkus operasi Dequantize baru.

Parameter
cakupan ruang lingkup saat ini
rentang minimum Nilai skalar minimum yang mungkin dihasilkan untuk masukan.
rentang maksimal Nilai skalar maksimum yang mungkin dihasilkan untuk masukan.
tipe Jenis tensor keluaran. Saat ini Dequantize mendukung float dan bfloat16. Jika 'dtype' adalah 'bfloat16', ini hanya mendukung mode 'MIN_COMBINED'.
pilihan membawa nilai atribut opsional
Kembali
  • contoh baru Dequantize

public static Dequantize < TFloat32 > buat ( Lingkup cakupan , Operan <? extends TType > masukan, Operan < TFloat32 > minRange, Operan < TFloat32 > maxRange, Opsi... opsi)

Metode pabrik untuk membuat kelas yang membungkus operasi Dequantize baru menggunakan tipe output default.

Parameter
cakupan ruang lingkup saat ini
rentang minimum Nilai skalar minimum yang mungkin dihasilkan untuk masukan.
rentang maksimal Nilai skalar maksimum yang mungkin dihasilkan untuk masukan.
pilihan membawa nilai atribut opsional
Kembali
  • contoh baru Dequantize

Mode Dequantize.Options statis publik (mode String)

Dequantize statis publik.Options NarrowRange (Boolean NarrowRange)

Keluaran publik <U> keluaran ()