UniformQuantizedConvolution

publiczna klasa końcowa UniformQuantizedConvolution

Wykonaj skwantowany splot skwantowanego tensora „lhs” i skwantowanego tensora „rhs”. aby uzyskać skwantowany „wyjście”.

Biorąc pod uwagę skwantowane „lhs” i skwantowane „rhs”, wykonuje skwantowaną kropkę na „lhs” i „rhs”, aby uzyskać skwantowany „wyjście”.

„lhs” i „rhs” muszą być tensorami tej samej rangi i spełniać następujące warunki kształtu. - `lhs_feature` % `feature_group_count` == 0 - `lhs_feature` % `rhs_input_feature` == 0 - `lhs_feature` / `feature_group_count` == `rhs_input_feature` - `rhs_output_feature` % `feature_group_count` == 0 - `lhs_partia` % `batch_group_count` == 0 - `rhs_output_feature` % `batch_group_count` == 0

„lhs” i „rhs” muszą być skwantowane Tensor, gdzie wartość danych jest kwantyzowana przy użyciu wzoru:

quantized_data = clip(original_data / scale + zero_point, quantization_min_val, quantization_max_val)
 
„wyjście” jest również kwantowane przy użyciu tego samego wzoru. Jeśli „rhs” jest kwantowane na tensor, „wyjście” musi być również kwantowane na tensor.

Klasy zagnieżdżone

klasa UniformQuantizedConvolution.Options Opcjonalne atrybuty dla UniformQuantizedConvolution

Metody publiczne

Wyjście <U>
jako wyjście ()
Zwraca symboliczny uchwyt tensora.
statyczne UniformQuantizedConvolution.Options
batchGroupCount (długa partiaGroupCount)
statyczny <U, T> UniformQuantizedConvolution <U>
utwórz ( Zakres zasięgu, Operand <T> lhs, Operand <T> rhs, Operand <Float> lhsScales, Operand <Integer> lhsZeroPoints, Operand <Float> rhsScales, Operand <Integer> rhsZeroPoints, Operand <Float> OutputScales, Operand <Integer > wyjścieZeroPoints, Class<U> Tout, dopełnienie ciągu, długie lhsQuantizationMinVal, długie lhsQuantizationMaxVal, długie rhsQuantizationMinVal, długie rhsQuantizationMaxVal, długie wyjścieQuantizationMinVal, długie wyjścieQuantizationMaxVal, opcje... opcje)
Metoda fabryczna służąca do tworzenia klasy opakowującej nową operację UniformQuantizedConvolution.
statyczne UniformQuantizedConvolution.Options
wymiarNumbers (Ciąg wymiarówNumbers)
statyczne UniformQuantizedConvolution.Options
jawnePadding (List<Long> jawnePadding)
statyczne UniformQuantizedConvolution.Options
featureGroupCount (długie featureGroupCount)
statyczne UniformQuantizedConvolution.Options
lhsDilation (List<Long> lhsDilation)
statyczne UniformQuantizedConvolution.Options
lewa oś kwantyzacji (długa oś kwantyzacji lhs)
Wyjście <U>
wyjście ()
Wyjściowy skwantowany tensor „Tout”, taki sam stopień jak „lhs” i „rhs”.
statyczne UniformQuantizedConvolution.Options
wyjścieQuantizationAxis (Długie wyjścieQuantizationAxis)
statyczne UniformQuantizedConvolution.Options
rhsDilation (List<Long> rhsDilation)
statyczne UniformQuantizedConvolution.Options
rhsQuantizationAxis (długa rhsQuantizationAxis)
statyczne UniformQuantizedConvolution.Options
windowStrides (List<Long> windowStrides)

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.

publiczny statyczny UniformQuantizedConvolution.OptionsbatchGroupCount ( długie partieGroupCount)

Parametry
liczba grup wsadowych Liczba grup wsadowych. Używany do filtrów zgrupowanych. Musi być dzielnikiem „cechy_wyjściowej”.

public static UniformQuantizedConvolution <U> create ( Zakres zasięgu, Operand <T> lhs, Operand <T> rhs, Operand <Float> lhsScales, Operand <Integer> lhsZeroPoints, Operand <Float> rhsScales, Operand <Integer> rhsZeroPoints, Operand <Float > wyjścieScales, Operand <Integer> wyjścieZeroPoints, Klasa<U> Tout, Dopełnienie ciągu, Long lhsQuantizationMinVal, Long lhsQuantizationMaxVal, Long rhsQuantizationMinVal, Long rhsQuantizationMaxVal, Długie wyjścieQuantizationMinVal, Długie wyjścieQuantizationMaxVal, Opcje... opcje)

Metoda fabryczna służąca do tworzenia klasy opakowującej nową operację UniformQuantizedConvolution.

Parametry
zakres aktualny zakres
lewy Musi to być skwantowany tensor, stopień >= 3.
prawa strona Musi to być skwantowany tensor o tej samej randze co „lhs”.
lhsSkale Wartości zmiennoprzecinkowe używane jako współczynniki skali podczas kwantyzacji oryginalnych danych reprezentowanych przez „lhs”. Musi to być skalarny „Tensor” („lhs” obsługuje tylko kwantyzację na tensor).
lhsZeroPunktów Wartości int32 używane jako punkty zerowe podczas kwantyzacji oryginalnych danych reprezentowanych przez „lhs”. Taki sam warunek kształtu jak `lhs_scales`.
rhsSkale Wartości zmiennoprzecinkowe używane jako współczynniki skali podczas kwantyzacji oryginalnych danych reprezentowanych przez „rhs”. Musi to być skalarny „Tensor” w przypadku kwantyzacji na tensor lub 1D „Tensor” o rozmiarze „rhs.dim_size(kernel_output_feature_dimension)” w przypadku kwantyzacji na kanał.
rhsZeroPunktów Wartości int32 używane jako punkty zerowe podczas kwantyzacji oryginalnych danych reprezentowanych przez „rhs”. Taki sam warunek kształtu jak `rhs_scales`.
Skale wyjściowe Wartości zmiennoprzecinkowe używane jako współczynniki skali podczas kwantyzacji oryginalnych danych reprezentowanych przez „wyjście”. Musi to być skalarny „Tensor” w przypadku kwantyzacji na tensor lub 1D „Tensor” o rozmiarze „rhs.dim_size(kernel_output_feature_dimension)” – który jest równy „output.dim_size(output_feature_dimension)” w przypadku kwantyzacji na kanał. Jeśli „rhs” jest kwantyzowane według tensora, sygnał wyjściowy musi być również skwantowany według tensora. Oznacza to, że jeśli `rhs_scales` i `rhs_zero_points` są skalarne, `tensor`s, `output_scales` i `output_zero_points` muszą być również skalarne `tensor`.
wyjścieZeroPoints Wartości int32 używane jako punkty zerowe podczas kwantyzacji oryginalnych danych reprezentowanych przez dane wyjściowe. Taki sam warunek kształtu jak `output_scales`.
Naganiacz Typ `wyjścia` `Tensora`.
wyściółka ciąg znaków z: `"SAME"`, `"VALID"` lub `"EXPLICIT"`, wskazujący typ algorytmu dopełniania, który ma zostać użyty.
lhsKwantyzacjaMinVal Minimalna wartość skwantowanych danych przechowywanych w „lhs”. Na przykład, jeśli `Tin` to `qint8`, należy to ustawić na -127, jeśli kwantyzowany jest wąski zakres, lub -128, jeśli nie.
lhsKwantyzacjaMaxVal Maksymalna wartość skwantowanych danych przechowywanych w „lhs”. Na przykład, jeśli `Tin` to `qint8`, należy to ustawić na 127.
rhsKwantyzacjaMinVal Minimalna wartość skwantowanych danych przechowywanych w „rhs”. Na przykład, jeśli `Tin` to `qint8`, należy to ustawić na -127, jeśli kwantyzowany jest wąski zakres, lub -128, jeśli nie.
rhsKwantyzacjaMaxVal Maksymalna wartość skwantowanych danych przechowywanych w „rhs”. Na przykład, jeśli `Tin` to `qint8`, należy to ustawić na 127.
wyjścieKwantyzacjaMinVal Minimalna wartość skwantowanych danych przechowywanych w „wyjściu”. Na przykład, jeśli `Tout` to `qint8`, należy to ustawić na -127, jeśli kwantyzowany jest wąski zakres, lub -128, jeśli nie.
wyjścieKwantyzacjaMaxVal Maksymalna wartość skwantowanych danych przechowywanych w „wyjściu”. Na przykład, jeśli `Tout` to `qint8`, należy to ustawić na 127.
opcje przenosi opcjonalne wartości atrybutów
Zwroty
  • nowa instancja UniformQuantizedConvolution

public static UniformQuantizedConvolution.Options DimensionNumbers (String DimensionNumbers)

Parametry
numery wymiarów Struktura informacji o wymiarach splotu op. Musi to być pusty ciąg znaków (domyślnie) lub serializowany ciąg znaków `tensorflow.UniformQuantizedConvolutionDimensionNumbersAttr` proto. Jeśli łańcuch jest pusty, wartością domyślną jest `("NCHW", "OIHW", "NCHW")` (dla splotu 2D).

public static UniformQuantizedConvolution.Options jawnePadding (List<Long> jawnePadding)

Parametry
wyraźne dopełnienie Jeśli „dopełnienie” to „„WYJAŚNIENIE””, musi być ustawione jako lista wskazująca wyraźne dopełnienie na początku i na końcu każdego wymiaru przestrzennego „lewej strony”. W przeciwnym razie to pole musi być puste.

(Jeśli jest używany) Musi być listą rozmiarów `2 * (liczba wymiarów przestrzennych lewej strony)`, gdzie `(explicit_padding[2 * i], jawne_padding[2 * i + 1])` wskazuje `(start_padding, end_padding) ` z `wymiarów_przestrzennych[i]`.

public static UniformQuantizedConvolution.Options featureGroupCount (długie featureGroupCount)

Parametry
liczba grup funkcji Liczba grup funkcji. Używany do zgrupowanych splotów. Musi być dzielnikiem zarówno „lhs_feature”, jak i „output_feature”.

public static UniformQuantizedConvolution.Options lhsDilation (List<Long> lhsDilation)

Parametry
lhsRozwarcie Współczynnik dylatacji stosowany w każdym wymiarze przestrzennym „lewej oś”. Musi to być pusta lista (domyślna) lub lista rozmiarów (liczba wymiarów przestrzennych `lhs`). Jeśli lista jest pusta, dylatacja dla każdego wymiaru przestrzennego „lhs” jest ustawiona na 1.

public static UniformQuantizedConvolution.Options lhsQuantizationAxis (długa lhsQuantizationAxis)

Parametry
lhsOś kwantyzacji 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 przypadku „lhs” obsługiwana jest tylko kwantyzacja na tensor. Dlatego należy to ustawić na -1. Inne wartości spowodują błąd w konstrukcji OpKernel.

publiczne wyjście <U> wyjście ()

Wyjściowy skwantowany tensor „Tout”, taki sam stopień jak „lhs” i „rhs”.

public static UniformQuantizedConvolution.Options OutputQuantizationAxis (Długie wyjścieQuantizationAxis)

Parametry
wyjścieQuantizationAxis 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 przypadku „wyjścia” obsługiwana jest tylko kwantyzacja na tensor lub na kanał wzdłuż „wymiaru_cechy_wyjściowej”. Zatem musi to być ustawione na -1 lub `dimension_numbers.output_feature_dimension`. Inne wartości spowodują błąd w konstrukcji OpKernel.

public static UniformQuantizedConvolution.Options rhsDilation (List<Long> rhsDilation)

Parametry
rhsRozwarcie Współczynnik dylatacji stosowany w każdym wymiarze przestrzennym „rhs”. Musi to być pusta lista (domyślna) lub lista rozmiarów (liczba wymiarów przestrzennych „rhs”). Jeśli lista jest pusta, dylatacja dla każdego wymiaru przestrzennego „rhs” jest ustawiona na 1.

public static UniformQuantizedConvolution.Options rhsQuantizationAxis (długi rhsQuantizationAxis)

Parametry
rhsOś kwantyzacji 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 przypadku „rhs” obsługiwana jest tylko kwantyzacja na tensor lub na kanał wzdłuż „kernel_output_feature_dimension”. Zatem musi to być ustawione na -1 lub `dimension_numbers.kernel_output_feature_dimension`. Inne wartości spowodują błąd w konstrukcji OpKernel.

public static UniformQuantizedConvolution.Options windowStrides (List<Long> windowStrides)

Parametry
OknoStrides Krok przesuwanego okna dla każdego wymiaru przestrzennego „lewej oś”. Musi to być pusta lista (domyślnie) lub lista rozmiarów (liczba wymiarów przestrzennych). Jeśli podano pustą listę, krok dla każdego wymiaru przestrzennego jest ustawiany na 1.