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> | |
Uscita <U> | produzione () |
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
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 < TFloat32 > outputMax ()
Il valore float che rappresenta il valore di uscita quantizzato massimo.