tensorflow:: ops:: QuantizeDownAndShrinkRange

#include <math_ops.h>

Przekształć skwantyzowany tensor „wejściowy” w „wyjściowy” o niższej precyzji, używając .

Streszczenie

rzeczywisty rozkład wartości w celu maksymalizacji wykorzystania mniejszej głębi bitowej i odpowiedniego dostosowania minimalnych i maksymalnych zakresów wyjściowych.

[input_min, input_max] to skalarne zmiennoprzecinkowe wartości, które określają zakres interpretacji zmiennoprzecinkowej danych wejściowych. Na przykład, jeśli input_min wynosi -1,0f, a input_max wynosi 1,0f, a mamy do czynienia z danymi skwantyzowanymi kwintyfikatorowo (quint16), to wartość 0 w danych 16-bitowych powinna być interpretowana jako -1,0f, a 65535 oznacza 1,0f.

Ten operator stara się zmieścić jak największą precyzję w wyjściu o niższej głębi bitowej, obliczając rzeczywiste wartości minimalne i maksymalne znalezione w danych. Na przykład, być może wejście quint16 nie zawiera wartości niższych niż 16 384 ani wyższych niż 49 152. Oznacza to, że tak naprawdę potrzebna jest tylko połowa zakresu – wszystkie interpretacje zmiennoprzecinkowe mieszczą się w przedziale od -0,5f do 0,5f. Jeśli więc chcemy skompresować dane do wyjścia quint8, możemy użyć tego zakresu zamiast teoretycznych wartości od -1,0f do 1,0f, sugerowanych przez wartości minimalne i maksymalne wejścia.

W praktyce jest to najbardziej przydatne do pobierania danych wyjściowych z operacji takich jak QuantizedMatMul , które mogą generować dane wyjściowe o większej głębokości bitowej niż dane wejściowe i mogą mieć duże potencjalne zakresy wyjściowe, ale w praktyce rozkład wartości wejściowych wykorzystuje jedynie niewielką część możliwego zakresu. Przekazując te dane wyjściowe do tego operatora, możemy zredukować je z 32 do 8 bitów przy minimalnej utracie dokładności.

Argumenty:

  • zakres: obiekt zakresu
  • input_min: Wartość zmiennoprzecinkowa, którą reprezentuje minimalna skwantowana wartość wejściowa.
  • input_max: Wartość zmiennoprzecinkowa, którą reprezentuje maksymalna skwantowana wartość wejściowa.
  • out_type: Typ wyjścia. Powinien mieć mniejszą głębię bitową niż Tinput.

Zwroty:

  • Wyjście Output
  • Output output_min: Wartość zmiennoprzecinkowa reprezentująca minimalną skwantowaną wartość wyjściową.
  • Output output_max: Wartość zmiennoprzecinkowa reprezentująca maksymalną skwantowaną wartość wyjściową.

Konstruktory i destruktory

QuantizeDownAndShrinkRange (const :: tensorflow::Scope & scope, :: tensorflow::Input input, :: tensorflow::Input input_min, :: tensorflow::Input input_max, DataType out_type)

Atrybuty publiczne

operation
output
output_max
output_min

Atrybuty publiczne

działanie

Operation operation

wyjście

::tensorflow::Output output

wyjście_max

::tensorflow::Output output_max

wyjście_min

::tensorflow::Output output_min

Funkcje publiczne

Kwantyzacja w dół i skurcz zakres

 QuantizeDownAndShrinkRange(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input input,
  ::tensorflow::Input input_min,
  ::tensorflow::Input input_max,
  DataType out_type
)