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 )