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))
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)
Faktor_penskalaan 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> | |
Dekuantisasi statis < TFloat32 > | |
Dequantize.Options statis | mode (mode string) |
Dequantize.Options statis | rentang sempit (rentang sempit Boolean) |
Keluaran <U> | keluaran () |
Metode Warisan
Konstanta
String akhir statis publik OP_NAME
Nama operasi ini dikenal dengan mesin inti TensorFlow
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.
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