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.

Ritorna:

  • Uscita Output uscita
  • 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
)