Biorąc pod uwagę skwantowane „wejście” tensora, dokonaj jego ponownej kwantyzacji przy użyciu nowych parametrów kwantyzacji.
Mając skwantowane „wejście” tensora, które zostało skwantowane za pomocą {skal_wejściowych, punktów_zero_wejściowych, osi_kwantyzacji_wejściowej, kwantyzacji_min_val_wejściowej, kwantyzacji_wejściowej_max_val}, skwantuj je do tensora, który jest kwantyzowany za pomocą {skali_wyjściowych, punktów_zero_wyjściowych, osi_kwantyzacji_wyjściowej, kwantyzacji_wyjściowej_min, wartości_kwantyzacji_wyjściowej_max_val}. Rekwantyzację przeprowadza się za pomocą wzoru: dane_kwantowane_wyjściowe = klip( (dane_kwantowane_wejściowe - punkt_zero_wejściowy) * (skala_wejściowa / skala_wyjściowa) + punkt_zero_wyjściowy, kwantyzacja_wyjściowa_min_val, kwantyzacja_wyjściowa_max_val)
Obsługiwane przypadki kwantyzacji na tensor i na oś są następujące:
- na tensor -> na tensor
- na tensor -> na oś
- na oś -> na oś, gdzie oś_kwantyzacji_wejściowej jest równa osi_kwantyzacji_wyjścia. tj. co najmniej jedna z osi_kwantyzacji_wejściowej i osi_kwantyzacji_wyjściowej musi mieć wartość -1 lub dwie muszą być równe.
Klasy zagnieżdżone
klasa | UniformRequantize.Opcje | Opcjonalne atrybuty dla UniformRequantize |
Metody publiczne
Wyjście <U> | jako wyjście () Zwraca symboliczny uchwyt tensora. |
statyczny <U, T> Jednolita rekwantyzacja <U> | utwórz ( Zakres zakresu, Operand <T> input, Operand <Float> inputScales, Operand <Integer> inputZeroPoints, Operand <Float> OutputScales, Operand <Integer> OutputZeroPoints, Class<U> Tout, Long inputQuantizationMinVal, Long inputQuantizationMaxVal, Long OutputQuantizationMinVal, Długie wyjścieQuantizationMaxVal, Opcje... opcje) Metoda fabryczna służąca do tworzenia klasy opakowującej nową operację UniformRequantize. |
statyczne UniformRequantize.Options | inputQuantizationAxis (Długie wejścieQuantizationAxis) |
Wyjście <U> | wyjście () Wyjście skwantowanego Tensora Touta, którego kształt jest taki sam jak sygnał wejściowy. |
statyczne UniformRequantize.Options | wyjścieQuantizationAxis (Długie wyjścieQuantizationAxis) |
Metody dziedziczone
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 UniformRequantize <U> create ( Zakres zakresu, Operand <T> wejście, Operand <Float> inputScales, Operand <Integer> inputZeroPoints, Operand <Float> wyjścieScales, Operand <Integer> wyjścieZeroPoints, Class<U> Tout, Long inputQuantizationMinVal, Długie wejścieKwantyzacjaMaxVal, Długie wyjścieKwantyzacjaMinVal, Długie wyjścieKwantyzacjaMaxVal, Opcje... opcje)
Metoda fabryczna służąca do tworzenia klasy opakowującej nową operację UniformRequantize.
Parametry
zakres | aktualny zakres |
---|---|
wejście | To musi być tensor cyny. |
wejścioweSkale | Wartości zmiennoprzecinkowe używane jako skale podczas kwantyzacji oryginalnych danych reprezentowanych przez „wejście”. Musi to być tensor skalarny, jeśli oś_kwantyzacji wynosi -1 (kwantyzacja na tensor), w przeciwnym razie tensor 1D o rozmiarze (input.dim_size(oś_kwantyzacji)) (kwantyzacja na oś). |
wejścieZeroPoints | Wartości int32 używane jako punkty zerowe podczas kwantyzacji oryginalnych danych reprezentowanych przez „input”. Taki sam stan kształtu jak łuski. |
Skale wyjściowe | Wartości zmiennoprzecinkowe, które mają zostać użyte jako nowe skale do kwantyzacji oryginalnych danych reprezentowanych przez „wejściowe”. Musi to być tensor skalarny, jeśli oś_kwantyzacji wynosi -1 (kwantyzacja na tensor), w przeciwnym razie tensor 1D o rozmiarze (input.dim_size(oś_kwantyzacji)) (kwantyzacja na oś). |
wyjścieZeroPoints | Wartości int32, które mają zostać użyte jako nowe punkty zerowe do kwantyzacji oryginalnych danych reprezentowanych przez „input”. Taki sam stan kształtu jak łuski. |
Naganiacz | Typ tensora wyjściowego. Typ tf.D z: tf.qint8, tf.qint32 |
wejścieKwantyzacjaMinVal | Minimalna wartość kwantyzacji użyta podczas kwantyzacji oryginalnych danych reprezentowanych przez „wejście”. Celem tego atrybutu jest zazwyczaj (ale nie wyłącznie) wskazanie wąskiego zakresu, gdzie jest on ustawiony na: „(Tin najniższy) + 1”, jeśli wąski zakres, i „(Tin najniższy)” w przeciwnym razie. Na przykład, jeśli Tin wynosi qint8, to jest ustawiane na -127, jeśli kwantyzowany jest wąski zakres, lub -128, jeśli nie. |
wejścieKwantyzacjaMaxVal | Maksymalna wartość kwantyzacji, która została użyta podczas kwantyzacji oryginalnych danych reprezentowanych przez „wejście”. Celem tego atrybutu jest zazwyczaj (ale nie wyłącznie) wskazanie wąskiego zakresu, gdzie jest on ustawiony na: `(Tout max)` zarówno dla wąskiego, jak i nie wąskiego zakresu. Na przykład, jeśli Tin ma wartość qint8, wartość ta wynosi 127. |
wyjścieKwantyzacjaMinVal | Nowa minimalna wartość kwantyzacji służąca do kwantyzacji oryginalnych danych reprezentowanych przez „input”. |
wyjścieKwantyzacjaMaxVal | Nowa maksymalna wartość kwantyzacji do kwantyzacji oryginalnych danych reprezentowanych przez „input”. |
opcje | przenosi opcjonalne wartości atrybutów |
Zwroty
- nowa instancja UniformRequantize
public static UniformRequantize.Options inputQuantizationAxis (Długie wejścieQuantizationAxis)
Parametry
wejściowa oś kwantyzacji | Oś kwantyzacji użyta podczas kwantyzacji oryginalnych danych reprezentowanych przez „wejście”. Wskazuje indeks wymiaru tensora, w przypadku którego stosowana jest kwantyzacja per-osiowa dla wycinków wzdłuż tego wymiaru. Jeśli ustawione na -1 (domyślnie), oznacza to kwantyzację na tensor. W przeciwnym razie musi być ustawiony w zakresie [0, input.dims()). |
---|
publiczne wyjście <U> wyjście ()
Wyjście skwantowanego Tensora Touta, którego kształt jest taki sam jak sygnał wejściowy.
public static UniformRequantize.Options OutputQuantizationAxis (Długie wyjścieQuantizationAxis)
Parametry
wyjścieQuantizationAxis | Nowa oś kwantyzacji używana do kwantyzacji oryginalnych danych reprezentowanych przez „wejście”. |
---|