Wykonaj hybrydowy skwantowany splot pływającego tensora „lhs” i skwantowanego tensora „rhs”.
Mając dane float „lhs” i skwantowane „rhs”, wewnętrznie przeprowadza kwantyzację na „lhs”, a następnie wykonuje skwantowany splot na skwantowanych „lhs” i „rhs”.
Wewnętrzna kwantyzacja na „lhs” to kwantyzacja do „Trhs”, zakresu dynamicznego, na partię (na oś wzdłuż osi „dimension_numbers.input_batch_dimension”), asymetryczną i nie wąską (zakres wynosi [Trhs_MIN, Trhs_MAX]) .
„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_batch % Batch_group_count == 0 - rhs_output_feature % Batch_group_count == 0
„rhs” musi być skwantowany Tensorem, gdzie jego wartość danych jest kwantyzowana przy użyciu wzoru: dane_kwantyzowane = klip(dane_oryginalne / skala + punkt zerowy, wartość_min.kwantyzacji, wartość_kwantyzacji_maks.).
Klasy zagnieżdżone
klasa | UniformQuantizedConvolutionHybrid.Options | Opcjonalne atrybuty dla UniformQuantizedConvolutionHybrid |
Metody publiczne
Wyjście <V> | jako wyjście () Zwraca symboliczny uchwyt tensora. |
statyczne UniformQuantizedConvolutionHybrid.Options | batchGroupCount (długa partiaGroupCount) |
statyczny <V rozszerza liczbę, T rozszerza liczbę, U> UniformQuantizedConvolutionHybrid <V> | utwórz ( Zakres zasięgu, Operand <T> lhs, Operand <U> rhs, Operand <Float> rhsScales, Operand <Integer> rhsZeroPoints, Class<V> Tout, Dopełnienie ciągów, Long rhsQuantizationMinVal, Long rhsQuantizationMaxVal, Opcje... opcje) Metoda fabryczna służąca do tworzenia klasy opakowującej nową operację UniformQuantizedConvolutionHybrid. |
statyczne UniformQuantizedConvolutionHybrid.Options | wymiarNumbers (Ciąg wymiarówNumbers) |
statyczne UniformQuantizedConvolutionHybrid.Options | jawnePadding (List<Long> jawnePadding) |
statyczne UniformQuantizedConvolutionHybrid.Options | featureGroupCount (długie featureGroupCount) |
statyczne UniformQuantizedConvolutionHybrid.Options | lhsDilation (List<Long> lhsDilation) |
Wyjście <V> | wyjście () Tensor wyjściowy „Tout”, taki sam stopień jak „lhs” i „rhs”. |
statyczne UniformQuantizedConvolutionHybrid.Options | rhsDilation (List<Long> rhsDilation) |
statyczne UniformQuantizedConvolutionHybrid.Options | rhsQuantizationAxis (długa rhsQuantizationAxis) |
statyczne UniformQuantizedConvolutionHybrid.Options | windowStrides (List<Long> windowStrides) |
Metody dziedziczone
Metody publiczne
publiczne wyjście <V> 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 UniformQuantizedConvolutionHybrid.Options BatchGroupCount (Długie BatchGroupCount)
Parametry
liczba grup wsadowych | Liczba grup wsadowych. Używany do filtrów zgrupowanych. Musi być dzielnikiem cechy_wyjściowej. |
---|
public static UniformQuantizedConvolutionHybrid <V> create ( Zakres zakresu, Operand <T> lhs, Operand <U> rhs, Operand <Float> rhsScales, Operand <Integer> rhsZeroPoints, Class<V> Tout, Dopełnienie ciągu, Long rhsQuantizationMinVal, Long rhsQuantizationMaxVal, Opcje... opcje)
Metoda fabryczna służąca do tworzenia klasy opakowującej nową operację UniformQuantizedConvolutionHybrid.
Parametry
zakres | aktualny zakres |
---|---|
lewy | Musi to być niekwantowany tensor „Tlhs”, ranga >= 3. |
prawa strona | Musi to być skwantowany tensor „Trhs”, o tej samej randze co „lhs”. |
rhsSkale | Wartości zmiennoprzecinkowe używane jako współczynniki skali podczas kwantyzacji oryginalnych danych reprezentowanych przez „rhs”. Musi to być tensor skalarny w przypadku kwantyzacji na tensor lub tensor 1D o rozmiarze „rhs.dim_size(kernel_output_feature_dimension)” w przypadku kwantyzacji na kanał. |
rhsZeroPunktów | Wartości int32 używane jako punkt zerowy podczas kwantyzacji oryginalnych danych reprezentowanych przez „rhs”. Taki sam warunek kształtu jak `rhs_scales`. |
Naganiacz | Typ tensora wyjściowego. |
wyściółka | ciąg znaków z: `"SAME"`, `"VALID"` lub `"EXPLICIT"`, wskazujący typ algorytmu dopełniania, który ma zostać użyty. |
rhsKwantyzacjaMinVal | Minimalna wartość skwantowanych danych przechowywanych w „rhs”. Na przykład, jeśli „Trhs” to qint8, należy to ustawić na -127, jeśli kwantyzacja wąskiego zakresu, lub -128, jeśli nie. |
rhsKwantyzacjaMaxVal | Maksymalna wartość skwantowanych danych przechowywanych w „rhs”. Na przykład, jeśli „Trhs” to qint8, należy ustawić tę wartość na 127. |
opcje | przenosi opcjonalne wartości atrybutów |
Zwroty
- nowa instancja UniformQuantizedConvolutionHybrid
public static UniformQuantizedConvolutionHybrid.Options DimensionNumbers (String DimensionNumbers)
Parametry
numery wymiarów | Struktura informacji o wymiarach splotu op. Musi to być pusty ciąg (domyślnie) lub serializowany ciąg tensorflow.UniformQuantizedConvolutionDimensionNumbersAttr proto. Jeśli łańcuch jest pusty, wartością domyślną jest `("NCHW", "OIHW", "NCHW")` (dla splotu 2D). |
---|
public static UniformQuantizedConvolutionHybrid.Options jawnePadding (List<Long> jawnePadding)
Parametry
wyraźne dopełnienie | Jeśli atrybut „dopełnienie” ma wartość „„WYJAŚNIONY””, musi być ustawiony jako lista wskazująca wyraźne dopełnienie na początku i na końcu każdego lewego wymiaru przestrzennego. W przeciwnym razie ten atrybut musi być pusty. (Jeśli jest używany) Musi być listą rozmiaru 2 * (liczba wymiarów przestrzennych po lewej stronie), gdzie (explicit_padding[2 * i], jawne_padding[2 * i + 1]) wskazuje wymiary_przestrzenne[i] (start_padding, end_padding). |
---|
public static UniformQuantizedConvolutionHybrid.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 UniformQuantizedConvolutionHybrid.Options lhsDilation (List<Long> lhsDilation)
Parametry
lhsRozwarcie | Współczynnik dylatacji stosowany w każdym wymiarze przestrzennym „lewej oś”. Musi to być pusta lista (domyślnie) lub lista rozmiarów (liczba wymiarów przestrzennych lewej strony). Jeśli lista jest pusta, dylatacja dla każdego lewego wymiaru przestrzennego jest ustawiona na 1. |
---|
publiczne wyjście <V> wyjście ()
Tensor wyjściowy „Tout”, taki sam stopień jak „lhs” i „rhs”. Dane wyjściowe to nieskwantowane dane wyjściowe.
public static UniformQuantizedConvolutionHybrid.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 po prawej stronie). Jeśli lista jest pusta, dylatacja dla każdego wymiaru przestrzennego po prawej stronie jest ustawiona na 1. |
---|
public static UniformQuantizedConvolutionHybrid.Options rhsQuantizationAxis (Długie 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ż wymiaru_wyjściowego_funkcji_jądra. Zatem ten atrybut musi być ustawiony na -1 lub `dimension_numbers.kernel_output_feature_dimension`. Inne wartości spowodują błąd w konstrukcji OpKernel. |
---|
public static UniformQuantizedConvolutionHybrid.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. |
---|