Merken Sie den Termin vor! Google I / O kehrt vom 18. bis 20. Mai zurück Registrieren Sie sich jetzt
Diese Seite wurde von der Cloud Translation API übersetzt.
Switch to English

Tensorflow :: ops :: Dequantisieren

#include <array_ops.h>

Dequantisieren Sie den Eingangstensor in einen Float- Tensor .

Zusammenfassung

[min_range, max_range] sind skalare Floats, die den Bereich für die 'Eingabedaten' angeben. Das Attribut 'mode' steuert genau, welche Berechnungen verwendet werden, um die Gleitkommawerte in ihre quantisierten Äquivalente umzuwandeln.

Im Modus 'MIN_COMBINED' wird jeder Wert des Tensors wie folgt durchlaufen:

if T == qint8: in[i] += (range(T) + 1)/ 2.0
out[i] = min_range + (in[i]* (max_range - min_range) / range(T))
hier range(T) = numeric_limits ::max() - numeric_limits ::min() range(T) = numeric_limits ::max() - numeric_limits ::min() range(T) = numeric_limits ::max() - numeric_limits ::min()

Beispiel für den MIN_COMBINED-Modus

Wenn die Eingabe von einem QuantizedRelu6 stammt , ist der Ausgabetyp quint8 (Bereich von 0-255), aber der mögliche Bereich von QuantizedRelu6 ist 0-6. Die Werte für min_range und max_range sind daher 0.0 und 6.0. Bei der Quantisierung von quint8 wird jeder Wert angenommen, in float umgewandelt und mit 6/255 multipliziert. Beachten Sie, dass bei einem quantisierten Typ von qint8 jeder Wert vor dem Casting zusätzlich um 128 addiert wird.

Wenn der Modus 'MIN_FIRST' ist, wird dieser Ansatz verwendet:

num_discrete_values = 1 << (# of bits in T)
range_adjust = num_discrete_values / (num_discrete_values - 1)
range = (range_max - range_min) * range_adjust
range_scale = range / num_discrete_values
const double offset_input = static_cast(input) - lowest_quantized;
result = range_min + ((input - numeric_limits::min()) * range_scale)

Beispiel für den skalierten Modus

SCALED Modus entspricht dem in QuantizeAndDequantize{V2|V3} verwendeten QuantizeAndDequantize{V2|V3} .

Wenn der Modus SCALED , verwenden wir nicht den gesamten Bereich des Ausgabetyps und wählen den niedrigstmöglichen Wert für die Symmetrie (z. B. der Ausgabebereich ist -127 bis 127, nicht -128 bis 127 für die vorzeichenbehaftete 8-Bit-Quantisierung). so dass 0.0 auf 0 abgebildet wird.

Den Wertebereich finden wir zunächst in unserem Tensor. Der Bereich, den wir verwenden, ist immer auf 0 zentriert, daher finden wir m so, dass

  m = max(abs(input_min), abs(input_max))

Unser Eingangstensorbereich ist dann [-m, m] .

Als nächstes wählen wir unsere Festpunkt-Quantisierungs-Buckets [min_fixed, max_fixed] . Wenn T signiert ist, ist dies

  num_bits = sizeof(T) * 8
  [min_fixed, max_fixed] =
      [-(1 << (num_bits - 1) - 1), (1 << (num_bits - 1)) - 1]

Andernfalls ist der Festpunktbereich

  [min_fixed, max_fixed] = [0, (1 << num_bits) - 1]
, wenn T ohne Vorzeichen ist

Daraus berechnen wir unseren Skalierungsfaktor s:

  s = (2 * m) / (max_fixed - min_fixed)

Jetzt können wir die Elemente unseres Tensors dequantisieren:

result = input * s

Argumente:

  • scope: Ein Scope- Objekt
  • min_range: Der minimale Skalarwert, der möglicherweise für die Eingabe erzeugt wird.
  • max_range: Der maximale Skalarwert, der möglicherweise für die Eingabe erzeugt wird.

Kehrt zurück:

  • Output : Der Ausgangstensor.

Konstruktoren und Destruktoren

Dequantize (const :: tensorflow::Scope & scope, :: tensorflow::Input input, :: tensorflow::Input min_range, :: tensorflow::Input max_range)
Dequantize (const :: tensorflow::Scope & scope, :: tensorflow::Input input, :: tensorflow::Input min_range, :: tensorflow::Input max_range, const Dequantize::Attrs & attrs)

Öffentliche Attribute

operation
output

Öffentliche Funktionen

node () const
::tensorflow::Node *
operator::tensorflow::Input () const
operator::tensorflow::Output () const

Öffentliche statische Funktionen

Mode (StringPiece x)

Strukturen

tensorflow :: ops :: Dequantize :: Attrs

Optionale Attributsetzer für Dequantize .

Öffentliche Attribute

Operation

Operation operation

Ausgabe

::tensorflow::Output output

Öffentliche Funktionen

Dequantisieren

 Dequantize(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input input,
  ::tensorflow::Input min_range,
  ::tensorflow::Input max_range
)

Dequantisieren

 Dequantize(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input input,
  ::tensorflow::Input min_range,
  ::tensorflow::Input max_range,
  const Dequantize::Attrs & attrs
)

Knoten

::tensorflow::Node * node() const 

operator :: tensorflow :: Input

 operator::tensorflow::Input() const 

operator :: tensorflow :: Output

 operator::tensorflow::Output() const 

Öffentliche statische Funktionen

Modus

Attrs Mode(
  StringPiece x
)