QuantizeDownAndShrinkRange

publiczna klasa końcowa QuantizeDownAndShrinkRange

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

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ę na wyjściu z mniejszą głębią bitową, 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.

Stałe

Strunowy OP_NAME Nazwa tej operacji znana silnikowi rdzenia TensorFlow

Metody publiczne

statyczny <U rozszerza TType > QuantizeDownAndShrinkRange <U>
utwórz (zakres zakresu , Operand <? rozszerza TType > input, Operand < TFloat32 > inputMin, Operand < TFloat32 > inputMax, Class<U> outType)
Metoda fabryczna służąca do tworzenia klasy opakowującej nową operację QuantizeDownAndShrinkRange.
Wyjście <U>
Dane wyjściowe <TFloat32>
moc wyjściowaMaks. ()
Wartość zmiennoprzecinkowa, którą reprezentuje maksymalna skwantowana wartość wyjściowa.
Dane wyjściowe <TFloat32>
moc wyjściowaMin ()
Wartość zmiennoprzecinkowa reprezentowana przez minimalną skwantowaną wartość wyjściową.

Metody dziedziczone

Stałe

publiczny statyczny końcowy ciąg znaków OP_NAME

Nazwa tej operacji znana silnikowi rdzenia TensorFlow

Wartość stała: „QuantizeDownAndShrinkRange”

Metody publiczne

public static QuantizeDownAndShrinkRange <U> create ( Zakres zakresu , Operand <? rozszerza TType > wejście, Operand < TFloat32 > inputMin, Operand < TFloat32 > inputMax, Class<U> outType)

Metoda fabryczna służąca do tworzenia klasy opakowującej nową operację QuantizeDownAndShrinkRange.

Parametry
zakres aktualny zakres
wejścieMin Wartość zmiennoprzecinkowa reprezentowana przez minimalną skwantowaną wartość wejściową.
wejścieMaks Wartość zmiennoprzecinkowa, którą reprezentuje maksymalna skwantowana wartość wejściowa.
outType Typ wyjścia. Powinien mieć niższą głębię bitową niż Tinput.
Zwroty
  • nowa instancja QuantizeDownAndShrinkRange

publiczne wyjście <U> wyjście ()

publiczne wyjście < TFloat32 > wyjścieMax ()

Wartość zmiennoprzecinkowa, którą reprezentuje maksymalna skwantowana wartość wyjściowa.

publiczne wyjście < TFloat32 > wyjścieMin ()

Wartość zmiennoprzecinkowa reprezentowana przez minimalną skwantowaną wartość wyjściową.