tensorflow::ops::QuantizeDownAndShrinkRange
#include <math_ops.h>Convertire il tensore 'input' quantizzato in un 'output' a precisione inferiore, utilizzando il.
Riepilogo
distribuzione effettiva dei valori per massimizzare l'utilizzo della profondità di bit inferiore e regolazione dei range minimi e massimi di output di conseguenza.
[input_min, input_max] sono valori scalari in virgola mobile che specificano l'intervallo per l'interpretazione in virgola mobile dei dati 'input'. Ad esempio, se input_min è -1.0f e input_max è 1.0f, e stiamo lavorando 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 cerca di comprimere la massima precisione possibile in un output con una profondità di bit inferiore, calcolando i valori minimi e massimi effettivi presenti nei dati. Ad esempio, supponiamo che l'input quint16 non abbia 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. Pertanto, se vogliamo comprimere i dati in un output quint8, possiamo utilizzare tale intervallo anziché l'intervallo teorico da -1,0f a 1,0f suggerito dai valori minimi e massimi dell'input.
In pratica, questo è particolarmente utile per elaborare l'output di operazioni come QuantizedMatMul , che possono produrre output con una profondità di bit superiore rispetto agli input e possono avere ampi intervalli di output potenziali, ma in pratica presentano una distribuzione di valori di input che utilizza solo una piccola frazione dell'intervallo possibile. Alimentando questo operatore con tale output, possiamo ridurlo da 32 bit a 8 con una perdita minima di precisione.
Argomentazioni:
- ambito: un oggetto Scope
- input_min: Il valore in virgola mobile che rappresenta il valore minimo quantizzato dell'input.
- input_max: Il valore in virgola mobile che rappresenta il valore massimo quantizzato dell'input.
- out_type: Il tipo di output. Dovrebbe avere una profondità di bit inferiore a Tinput.
Resi:
-
Output -
Outputoutput_min: Il valore float che rappresenta il valore minimo di output quantizzato. -
Outputoutput_max: Il valore float che rappresenta il valore massimo quantizzato dell'output.
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
output_max
::tensorflow::Output output_max
output_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 )