Dekwantyzuj tensor „wejściowy” na tensor zmiennoprzecinkowy lub tensor bfloat16.
[min_range, max_range] to skalarne liczby zmiennoprzecinkowe, które określają zakres danych wyjściowych. Atrybut „mode” dokładnie kontroluje, które obliczenia są używane do konwersji wartości zmiennoprzecinkowych na ich skwantowane odpowiedniki.
W trybie „MIN_COMBINED” każda wartość tensora zostanie poddana następującym czynnościom:
if T == qint8: in[i] += (range(T) + 1)/ 2.0
out[i] = min_range + (in[i]* (max_range - min_range) / range(T))
Przykład trybu MIN_COMBINED
Jeśli dane wejściowe pochodzą z QuantizedRelu6, typem wyjścia jest quint8 (zakres 0-255), ale możliwy zakres QuantizedRelu6 to 0-6. Wartości min_range i max_range wynoszą zatem 0,0 i 6,0. Dekwantyzacja na kwincie8 pobierze każdą wartość, rzutuje na liczbę zmiennoprzecinkową i pomnoży przez 6/255. Należy zauważyć, że jeśli typem kwantyzacji jest qint8, operacja dodatkowo doda każdą wartość o 128 przed rzutowaniem.
Jeśli tryb to „MIN_FIRST”, stosowane jest następujące podejście:
num_discrete_values = 1 << (# of bits in T)
range_adjust = num_discrete_values / (num_discrete_values - 1)
range = (range_max - range_min) * range_adjust
range_scale = range / num_discrete_values
const double offset_input = static_cast<double>(input) - lowest_quantized;
result = range_min + ((input - numeric_limits<T>::min()) * range_scale)
Współczynnik skalowania jest określany na podstawie „min_range”, „max_range” i „narrow_range” w sposób zgodny z `QuantizeAndDequantize{V2|V3}` i `QuantizeV2`, przy użyciu następującego algorytmu:
const int min_expected_T = std::numeric_limits<T>::min() +
(narrow_range ? 1 : 0);
const int max_expected_T = std::numeric_limits<T>::max();
const float max_expected_T = std::numeric_limits<float>::max();
const float scale_factor =
(std::numeric_limits<T>::min() == 0) ? (max_range / max_expected_T)
: std::max(min_range / min_expected_T,
max_range / max_expected_T);
Klasy zagnieżdżone
klasa | Dekwantyzacja.Opcje | Opcjonalne atrybuty Dequantize |
Stałe
Smyczkowy | OP_NAME | Nazwa tej operacji znana silnikowi rdzenia TensorFlow |
Metody publiczne
Wyjście <U> | jako wyjście () Zwraca symboliczny uchwyt tensora. |
statyczne Dekwantyzuj.Opcje | oś (oś długa) |
statyczny <U rozszerza TNumber > Dekwantyzuj <U> | |
statyczny Dekwantyzacja < TFloat32 > | |
statyczne Dekwantyzuj.Opcje | tryb (tryb ciągowy) |
statyczne Dekwantyzuj.Opcje | wąski zakres (Boolean wąski zakres) |
Wyjście <U> | wyjście () |
Metody dziedziczone
Stałe
publiczny statyczny końcowy ciąg znaków OP_NAME
Nazwa tej operacji znana silnikowi rdzenia TensorFlow
Metody publiczne
publiczne wyjście <U> asOutput ()
Zwraca symboliczny uchwyt tensora.
Dane wejściowe operacji TensorFlow są wynikami innej operacji TensorFlow. Ta metoda służy do uzyskania symbolicznego uchwytu reprezentującego obliczenia danych wejściowych.
public static Dekwantyzacja <U> utwórz ( Zakres zakresu, Operand <? rozszerza TType > wejście, Operand < TFloat32 > minRange, Operand < TFloat32 > maxRange, Class<U> dtype, Opcje... opcje)
Metoda fabryczna służąca do tworzenia klasy opakowującej nową operację dekwantyzacji.
Parametry
zakres | aktualny zakres |
---|---|
minZakres | Minimalna wartość skalarna, jaką można uzyskać dla wejścia. |
Maks.Zakres | Maksymalna wartość skalarna, jaką można uzyskać dla wejścia. |
typ | Typ tensora wyjściowego. Obecnie Dekwantyzacja obsługuje float i bfloat16. Jeśli „dtype” to „bfloat16”, obsługuje tylko tryb „MIN_COMBINED”. |
opcje | przenosi opcjonalne wartości atrybutów |
Powroty
- nowa instancja Dequantize
public static Dekwantyzacja < TFloat32 > utwórz (Zakres zasięgu , Operand <? rozszerza TType > wejście, Operand < TFloat32 > minRange, Operand < TFloat32 > maxRange, Opcje... opcje)
Metoda fabryczna służąca do tworzenia klasy opakowującej nową operację dekwantyzacji przy użyciu domyślnych typów wyników.
Parametry
zakres | aktualny zakres |
---|---|
minZakres | Minimalna wartość skalarna, jaką można uzyskać dla sygnału wejściowego. |
Maks.Zakres | Maksymalna wartość skalarna, jaką można uzyskać dla wejścia. |
opcje | przenosi opcjonalne wartości atrybutów |
Powroty
- nowa instancja Dequantize