tensoreflusso:: ops:: QuantizeDownAndShrinkRange
#include <math_ops.h>
Converti il tensore di "input" quantizzato in un "output" di precisione inferiore, utilizzando il metodo .
Riepilogo
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, allora 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.
Argomenti:
- scope: un oggetto Scope
- input_min: il valore float rappresentato dal valore di input quantizzato minimo.
- input_max: il valore float che rappresenta il valore di input quantizzato massimo.
- out_type: il tipo di output. Dovrebbe avere una profondità di bit inferiore rispetto a Tinput.
Resi:
- Uscita
Output
-
Output
output_min: il valore float rappresentato dal valore di output quantizzato minimo. -
Output
output_max: il valore float che rappresenta il valore di output quantizzato massimo.
Costruttori e distruttori | |
---|---|
QuantizeDownAndShrinkRange (const :: tensorflow::Scope & scope, :: tensorflow::Input input, :: tensorflow::Input input_min, :: tensorflow::Input input_max, DataType out_type) |
Attributi pubblici | |
---|---|
operation | |
output | |
output_max | |
output_min |
Attributi pubblici
operazione
Operation operation
produzione
::tensorflow::Output output
uscita_max
::tensorflow::Output output_max
uscita_min
::tensorflow::Output output_min
Funzioni pubbliche
QuantizeDownAndShrinkRange
QuantizeDownAndShrinkRange( const ::tensorflow::Scope & scope, ::tensorflow::Input input, ::tensorflow::Input input_min, ::tensorflow::Input input_max, DataType out_type )