Dengan `input` tensor terkuantisasi, kuantisasi ulang dengan parameter kuantisasi baru.
Diberikan tensor terkuantisasi `input`, yang dikuantisasi menggunakan {input_scales, input_zero_points, input_quantization_axis, input_quantization_min_val, input_quantization_max_val}, kuantisasi ulang menjadi tensor, yang dikuantisasi menggunakan {output_scales, output_zero_points, output_quantization_axis, output_quantization_min_val, output_quantization_max_val}. Rekuantisasi dilakukan dengan menggunakan rumus: output_quantized_data = clip( (input_quantized_data - input_zero_point) * (input_scale / output_scale) + output_zero_point, output_quantization_min_val, output_quantization_max_val)
Kasus yang didukung kuantisasi per tensor dan per sumbu adalah sebagai berikut:
- per-tensor -> per-tensor
- per-tensor -> per-sumbu
- per sumbu -> per sumbu dengan sumbu_kuantisasi_input sama dengan sumbu_kuantisasi_output. yaitu Setidaknya satu di antara sumbu_kuantisasi_input dan sumbu_kuantisasi_output harus -1, atau dua harus sama.
Kelas Bersarang
kelas | UniformRequantize.Options | Atribut opsional untuk UniformRequantize |
Metode Publik
Keluaran <U> | sebagai Keluaran () Mengembalikan pegangan simbolik tensor. |
statis <U, T> UniformRequantize <U> | buat ( Lingkup lingkup, Operand <T> input, Operand <Float> inputScales, Operand <Integer> inputZeroPoints, Operand <Float> outputScales, Operand <Integer> outputZeroPoints, Kelas<U> Tout, Long inputQuantizationMinVal, Long inputQuantizationMaxVal, Long outputQuantizationMinVal, Output panjangQuantizationMaxVal, Opsi... opsi) Metode pabrik untuk membuat kelas yang membungkus operasi UniformRequantize baru. |
UniformRequantize.Options statis | inputQuantizationAxis (InputPanjangQuantizationAxis) |
Keluaran <U> | keluaran () Tensor Tout yang dikuantisasi keluarannya, yang bentuknya sama dengan masukan. |
UniformRequantize.Options statis | Sumbu Kuantisasi keluaran (Sumbu Kuantisasi keluaran panjang) |
Metode Warisan
Metode Publik
Keluaran publik <U> sebagai Keluaran ()
Mengembalikan pegangan simbolik tensor.
Masukan ke operasi TensorFlow adalah keluaran dari operasi TensorFlow lainnya. Metode ini digunakan untuk mendapatkan pegangan simbolis yang mewakili perhitungan input.
public static UniformRequantize <U> buat ( Lingkup cakupan, Operan <T> input, Operan <Float> inputScales, Operan <Integer> inputZeroPoints, Operan <Float> outputScales, Operan <Integer> outputZeroPoints, Kelas<U> Tout, Input panjangQuantizationMinVal, Input panjangQuantizationMaxVal, Output panjangQuantizationMinVal, Output panjangQuantizationMaxVal, Pilihan... pilihan)
Metode pabrik untuk membuat kelas yang membungkus operasi UniformRequantize baru.
Parameter
cakupan | ruang lingkup saat ini |
---|---|
memasukkan | Harus berupa Tensor Timah. |
masukanTimbangan | Nilai float yang digunakan sebagai skala saat mengkuantisasi data asli yang diwakili oleh `input`. Harus berupa Tensor skalar jika quantization_axis adalah -1 (kuantisasi per-tensor), jika tidak, Tensor berukuran 1D (input.dim_size(quantization_axis),) (kuantisasi per-sumbu). |
masukanZeroPoints | Nilai int32 digunakan sebagai titik_nol saat mengkuantisasi data asli yang diwakili oleh `input`. Kondisi bentuknya sama dengan sisik. |
keluaranTimbangan | Nilai float yang akan digunakan sebagai skala baru untuk mengkuantisasi data asli yang diwakili oleh `input`. Harus berupa Tensor skalar jika quantization_axis adalah -1 (kuantisasi per-tensor), jika tidak, Tensor berukuran 1D (input.dim_size(quantization_axis),) (kuantisasi per-sumbu). |
keluaranZeroPoints | Nilai int32 yang akan digunakan sebagai titik_nol baru untuk mengkuantisasi data asli yang diwakili oleh `input`. Kondisi bentuknya sama dengan sisik. |
Mengintip | Jenis Tensor keluaran. Sebuah tf.DType dari: tf.qint8, tf.qint32 |
masukanKuantisasiMinVal | Nilai minimum kuantisasi yang digunakan saat mengkuantisasi data asli yang diwakili oleh `input`. Tujuan dari atribut ini biasanya (namun tidak terbatas pada) untuk menunjukkan rentang sempit, yang diatur ke: `(Timah terendah) + 1` jika rentang sempit, dan `(Timah terendah)` jika sebaliknya. Misalnya, jika Timah adalah qint8, ini diatur ke -127 jika rentangnya sempit atau -128 jika tidak. |
masukanQuantizationMaxVal | Nilai maksimal kuantisasi yang digunakan saat mengkuantisasi data asli yang diwakili oleh `input`. Tujuan dari atribut ini biasanya (namun tidak terbatas pada) menunjukkan rentang sempit, yang diatur ke: `(Tout max)` untuk rentang sempit dan bukan rentang sempit. Misalnya, jika Tin adalah qint8, maka ini diatur ke 127. |
outputQuantizationMinVal | Nilai min kuantisasi baru untuk mengkuantisasi data asli yang diwakili oleh `input`. |
keluaranQuantizationMaxVal | Nilai maksimal kuantisasi baru untuk mengkuantisasi data asli yang diwakili oleh `input`. |
pilihan | membawa nilai atribut opsional |
Kembali
- contoh baru dari UniformRequantize
UniformRequantize.Options inputQuantizationAxis statis publik (InputPanjangQuantizationAxis)
Parameter
inputQuantizationAxis | Sumbu kuantisasi yang digunakan saat mengkuantisasi data asli yang diwakili oleh `input`. Menunjukkan indeks dimensi tensor tempat kuantisasi per sumbu diterapkan untuk irisan sepanjang dimensi tersebut. Jika disetel ke -1 (default), ini menunjukkan kuantisasi per tensor. Jika tidak, maka harus diatur dalam rentang [0, input.dims()). |
---|
Keluaran publik <U> keluaran ()
Tensor Tout yang dikuantisasi keluarannya, yang bentuknya sama dengan masukan.
UniformRequantize.Options outputQuantizationAxis statis publik (OutputQuantizationAxis panjang)
Parameter
outputQuantizationAxis | Sumbu kuantisasi baru yang digunakan untuk mengkuantisasi data asli yang diwakili oleh `input`. |
---|