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
  • Output output_min: Il valore float che rappresenta il valore minimo di output quantizzato.
  • Output output_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
)