Tensorflow :: ops :: Dequantisieren

#include <array_ops.h>

Dequantisieren Sie den ' Input' -Tensor in einen Float- oder Bfloat16- Tensor .

Zusammenfassung

[min_range, max_range] sind skalare Floats, die den Bereich für die Ausgabe 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 Dequantisierung auf 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)

Wenn der Modus SCALED , wird die Dequantisierung durchgeführt, indem jeder Eingabewert mit einem Skalierungsfaktor multipliziert wird. (Somit wird eine Eingabe von 0 immer auf 0,0 abgebildet).

Der Skalierungsfaktor wird aus min_range , max_range und narrow_range auf eine Weise bestimmt, die mit QuantizeAndDequantize{V2|V3} und QuantizeV2 kompatibel ist, wobei der folgende Algorithmus verwendet wird:

  

  const int min_expected_T = std::numeric_limits::min() +
    (narrow_range ? 1 : 0);
  const int max_expected_T = std::numeric_limits::max();
  const float max_expected_T = std::numeric_limits::max();

  const float scale_factor =
    (std::numeric_limits::min() == 0) ? (max_range / max_expected_T)
                                         : std::max(min_range / min_expected_T,
                                                    max_range / max_expected_T);

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.

Optionale Attribute (siehe Attrs ):

  • dtype: Typ des Ausgangstensors. Derzeit unterstützt Dequantize float und bfloat16. Wenn 'dtype' 'bfloat16' ist, wird nur der Modus 'MIN_COMBINED' unterstützt.

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

Axis (int64 x)
Dtype (DataType x)
Mode (StringPiece x)
NarrowRange (bool 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

Achse

Attrs Axis(
  int64 x
)

Dtype

Attrs Dtype(
  DataType x
)

Modus

Attrs Mode(
  StringPiece x
)

Engen Bereich

Attrs NarrowRange(
  bool x
)