przepływ tensorowy:: ops:: KwantyzacjaDownAndShrinkRange

#include <math_ops.h>

Konwertuj skwantowany tensor „wejściowy” na „wyjściowy” o niższej precyzji, używając funkcji.

Streszczenie

rzeczywisty rozkład wartości, aby zmaksymalizować wykorzystanie dolnej głębi bitowej i odpowiednio dostosować minimalne i maksymalne zakresy wyjściowe.

[input_min, input_max] to skalarne liczby zmiennoprzecinkowe, 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 ze skwantowanymi danymi quint16, to wartość 0 w danych 16-bitowych należy interpretować jako -1,0f, a 65535 oznacza 1,0f.

Operator ten próbuje wycisnąć jak największą precyzję w danych wyjściowych o mniejszej głębi bitowej, obliczając rzeczywiste wartości minimalne i maksymalne znalezione w danych. Na przykład być może dane wejściowe quint16 nie mają wartości mniejszych niż 16 384 i żadnej wyższej niż 49 152. Oznacza to, że faktycznie potrzebna jest tylko połowa zakresu, wszystkie interpretacje float mieszczą się w przedziale od -0,5f do 0,5f, więc jeśli chcemy skompresować dane do postaci wyjściowej Quint8, możemy użyć tego zakresu zamiast teoretycznego -1,0f do 1,0 f, co sugeruje wejście min i max.

W praktyce jest to najbardziej przydatne do pobierania danych wyjściowych z operacji takich jak QuantizedMatMul , które mogą generować wyniki o większej głębi bitowej niż ich dane wejściowe i mogą mieć duże potencjalne zakresy wyjściowe, ale w praktyce mają rozkład wartości wejściowych, który wykorzystuje tylko niewielką część możliwy zasięg. Dostarczając dane wyjściowe do tego operatora, możemy zmniejszyć je z 32 bitów do 8 przy minimalnej utracie dokładności.

Argumenty:

  • zakres: Obiekt Scope
  • input_min: Wartość zmiennoprzecinkowa reprezentowana przez minimalną skwantowaną wartość wejściową.
  • input_max: Wartość zmiennoprzecinkowa reprezentowana przez maksymalną skwantowaną wartość wejściową.
  • out_type: Typ wyniku. Powinien mieć niższą głębię bitową niż Tinput.

Zwroty:

  • Wyjście Output
  • Output : Wartość zmiennoprzecinkowa reprezentowana przez minimalną skwantowaną wartość wyjściową.
  • Output : Wartość zmiennoprzecinkowa, którą reprezentuje maksymalna skwantowana wartość wyjściowa.

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_maks

::tensorflow::Output output_max

wyjście_min

::tensorflow::Output output_min

Funkcje publiczne

KwantyzacjaDownAndShrinkRange

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