QuantizeDownAndShrinkRange

classe finale pubblica QuantizeDownAndShrinkRange

Converti il ​​tensore di "input" quantizzato in un "output" di precisione inferiore, utilizzando il metodo

distribuzione effettiva dei valori per massimizzare l'utilizzo della profondità di bit inferiore e regolare di conseguenza gli intervalli minimo e massimo di output.

[input_min, input_max] sono float scalari che specificano l'intervallo per l'interpretazione float dei dati 'input'. Ad esempio, se input_min è -1.0f e input_max è 1.0f e abbiamo a che fare con dati quantizzati quint16, un valore 0 nei dati a 16 bit dovrebbe essere interpretato come -1.0f e 65535 significa 1.0f.

Questo operatore tenta di inserire la massima precisione possibile in un output con una profondità di bit inferiore calcolando i valori minimo e massimo effettivi trovati nei dati. Ad esempio, forse l'input quint16 non ha valori inferiori a 16.384 e nessuno superiore a 49.152. Ciò significa che è effettivamente necessaria solo metà dell'intervallo, tutte le interpretazioni float sono comprese tra -0,5f e 0,5f, quindi se vogliamo comprimere i dati in un output quint8, possiamo utilizzare quell'intervallo anziché il valore teorico da -1,0f a 1,0 f quello suggerito dagli input min e max.

In pratica, questo è molto utile per ottenere output da operazioni come QuantizedMatMul che possono produrre output con una profondità di bit maggiore rispetto ai loro input e possono avere ampi intervalli di output potenziali, ma in pratica hanno una distribuzione dei valori di input che utilizza solo una piccola frazione del intervallo possibile. Inviando l'output a questo operatore, possiamo ridurlo da 32 bit a 8 con una perdita minima di precisione.

Costanti

Corda OP_NAME Il nome di questa operazione, come noto al motore principale di TensorFlow

Metodi pubblici

statico <U estende TType > QuantizeDownAndShrinkRange <U>
create ( Scope scope, Operando <? estende TType > input, Operando < TFloat32 > inputMin, Operando < TFloat32 > inputMax, Class<U> outType)
Metodo factory per creare una classe che racchiude una nuova operazione QuantizeDownAndShrinkRange.
Uscita <U>
Uscita < TFloat32 >
uscitaMax ()
Il valore float che rappresenta il valore di uscita quantizzato massimo.
Uscita < TFloat32 >
uscitaMin ()
Il valore float che rappresenta il valore di uscita quantizzato minimo.

Metodi ereditati

Costanti

Stringa finale statica pubblica OP_NAME

Il nome di questa operazione, come noto al motore principale di TensorFlow

Valore costante: "QuantizeDownAndShrinkRange"

Metodi pubblici

public static QuantizeDownAndShrinkRange <U> create ( Scope scope, Operand <? extends TType > input, Operand < TFloat32 > inputMin, Operand < TFloat32 > inputMax, Class<U> outType)

Metodo factory per creare una classe che racchiude una nuova operazione QuantizeDownAndShrinkRange.

Parametri
scopo ambito attuale
ingressoMin Il valore float rappresentato dal valore di input quantizzato minimo.
ingressoMax Il valore float che rappresenta il valore di input quantizzato massimo.
outType Il tipo di output. Dovrebbe avere una profondità di bit inferiore rispetto a Tinput.
ritorna
  • una nuova istanza di QuantizeDownAndShrinkRange

Uscita pubblica <U> uscita ()

Uscita pubblica < TFloat32 > outputMax ()

Il valore float che rappresenta il valore di uscita quantizzato massimo.

Uscita pubblica < TFloat32 > outputMin ()

Il valore float che rappresenta il valore di uscita quantizzato minimo.