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 -
Outputoutput_min: Wartość zmiennoprzecinkowa reprezentująca minimalną skwantowaną wartość wyjściową. -
Outputoutput_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 )