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> | |
Wyjście <U> | wyjście () |
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
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 < TFloat32 > wyjścieMax ()
Wartość zmiennoprzecinkowa, którą reprezentuje maksymalna skwantowana wartość wyjściowa.