Ta strona została przetłumaczona przez Cloud Translation API.
Switch to English

Dialekt `` tfl '' definicja

Dialekt TensorFlow Lite.

Ten dialekt odwzorowuje operacje TensorFlow Lite.

Niezmienniki:

  • Wszystkie wartości są typu Tensor (w szczególności skalary są reprezentowane za pomocą tensorów zerowymiarowych);

Definicja operacji

tfl.abs (TFL :: AbsOp)

Operator wartości bezwzględnej

Opis:

Biorąc pod uwagę tensor x , ta operacja zwraca tensor zawierający wartość bezwzględną każdego elementu w x . Na przykład, jeśli x jest elementem wejściowym, a y jest elementem wyjściowym, ta operacja oblicza \ (y = | x | \).

Operandy:

  1. x : tensor dowolnego typu

Atrybuty:

Wyniki:

  1. y : tensor dowolnego typu wartości

tfl.add_n (TFL :: AddNOp)

operator add_n

Opis:

Dodaje wszystkie tensory wejściowe według elementów.

Operandy:

  1. inputs : tensor dowolnego typu wartości

Atrybuty:

Wyniki:

  1. sum : tensor dowolnego typu wartości

tfl.add (TFL :: AddOp)

Operator dodawania

Opis:

Operacja dodawania według elementów.

Operandy:

  1. lhs : tensor wartości dowolnego typu
  2. rhs : tensor dowolnego typu

Atrybuty:

Atrybut Typ MLIR Opis
fused_activation_function StringAttr atrybut fused Activation enum

Wyniki:

  1. output : tensor dowolnego typu wartości

tfl.arg_max (TFL :: ArgMaxOp)

Operator ArgMax

Opis:

Zwraca indeks o największej wartości w wymiarach tensora.

Operandy:

  1. input : tensor dowolnego typu wartości
  2. dim : tensor dowolnego typu

Atrybuty:

Atrybut Typ MLIR Opis
output_type Attribute pochodny atrybut atrybutu

Wyniki:

  1. output : tensor dowolnego typu wartości

tfl.arg_min (TFL :: ArgMinOp)

Operator ArgMin

Opis:

Zwraca indeks z najmniejszą wartością w wymiarach tensora. "A = [1, 10, 26,9, 2,8, 166,32, 62,3] b = tf.math.argmin (input = a) c = tf.keras.backend.eval (b)

Operandy:

  1. input : tensor dowolnego typu wartości
  2. dim : tensor dowolnego typu

Atrybuty:

Atrybut Typ MLIR Opis
output_type Attribute pochodny atrybut atrybutu

Wyniki:

  1. output : tensor dowolnego typu wartości

tfl.average_pool_2d (TFL :: AveragePool2DOp)

Operator Average_pool_2d

Opis:

Wykonuje operację puli średniej na wejściu.

Operandy:

  1. input : tensor dowolnego typu wartości

Atrybuty:

Atrybut Typ MLIR Opis
filter_height IntegerAttr Atrybut 32-bitowej liczby całkowitej
filter_width IntegerAttr Atrybut 32-bitowej liczby całkowitej
padding StringAttr atrybut padding enum
stride_h IntegerAttr Atrybut 32-bitowej liczby całkowitej
stride_w IntegerAttr Atrybut 32-bitowej liczby całkowitej
fused_activation_function StringAttr atrybut fused Activation enum

Wyniki:

  1. output : tensor dowolnego typu wartości

tfl.basic_lstm (TFL :: BasicLSTMOp)

Podstawowy operator lstm

Opis:

podstawowy operator komórki LSTM.

Operandy:

  1. data_input : tensor wartości dowolnego typu
  2. prev_activ_input : tensor wartości dowolnego typu
  3. weights_input : tensor wartości dowolnego typu
  4. biases_input : tensor wartości dowolnego typu
  5. prev_state_input : tensor wartości dowolnego typu

Atrybuty:

Atrybut Typ MLIR Opis
fused_activation_function StringAttr atrybut fused Activation enum
cell_clip FloatAttr Atrybut 32-bitowego atrybutu float
proj_clip FloatAttr Atrybut 32-bitowego atrybutu float
kernel_type StringAttr lstm typ jądra enum case atrybut BASIC

Wyniki:

  1. activ_output : tensor 2D dowolnego typu
  2. state_output : tensor 2D dowolnego typu
  3. concat_temp : tensor 2D dowolnego typu
  4. activ_temp : tensor 2D dowolnego typu

tfl.batch_to_space_nd (TFL :: BatchToSpaceNdOp)

Operator BatchToSpaceNd

Opis:

Ta operacja przekształca wymiar „partii” 0 na wymiary przestrzeni.

Operandy:

  1. input : tensor dowolnego typu wartości
  2. block_shape : tensor dowolnego typu
  3. indices : tensor wartości dowolnego typu

Atrybuty:

Wyniki:

  1. output : tensor dowolnego typu wartości

tfl.cast (TFL :: CastOp)

Operator rzutowania

Opis:

Rzutuje dane wejściowe z typu wejściowego na typ wyjściowy.

Operandy:

  1. input : tensor dowolnego typu wartości

Atrybuty:

Wyniki:

  1. output : tensor dowolnego typu wartości

tfl.ceil (TFL :: CeilOp)

Operator sufitowy

Opis:

Zwraca wartość ceil dla elementu wejściowego.

Operandy:

  1. x : tensor dowolnego typu

Atrybuty:

Wyniki:

  1. y : tensor dowolnego typu wartości

tfl.concatenation (TFL :: ConcatenationOp)

Operator łączenia

Opis:

Łączy tensory wzdłuż jednego wymiaru

Operandy:

  1. values : tensor dowolnego typu

Atrybuty:

Atrybut Typ MLIR Opis
axis IntegerAttr Atrybut 32-bitowej liczby całkowitej
fused_activation_function StringAttr atrybut fused Activation enum

Wyniki:

  1. output : tensor dowolnego typu wartości

tfl.pseudo_const (TFL :: ConstOp)

Stała pseudo op.

Opis:

Reprezentuje stałą wartość w dialekcie TensorFlow Lite. To nie jest faktyczna operacja i zamiast tego zostanie obniżona do bufora.

Op może mieć wszystkie atrybuty tego samego typu co tf.Const (np. Nieprzezroczyste atrybuty TF są dozwolone).

Operandy:

Atrybuty:

Atrybut Typ MLIR Opis
value ElementsAttr stały atrybut wektor / tensor

Wyniki:

  1. output : tensor dowolnego typu wartości

tfl.conv_2d (TFL :: Conv2DOp)

Operator splotu

Opis:

Wykonuje operację konwolucji na danych wejściowych.

Wejścia: inputs[0] : wymagane: wejścia tensora aktywacji inputs[1] : wymagane: inputs[2] tensora wagi filtra inputs[2] : opcjonalnie: tensor polaryzacji

Operandy:

  1. input : tensor dowolnego typu wartości
  2. filter : tensor dowolnego typu
  3. bias : tensor dowolnego typu wartości lub żadnego typu

Atrybuty:

Atrybut Typ MLIR Opis
dilation_h_factor IntegerAttr Atrybut 32-bitowej liczby całkowitej
dilation_w_factor IntegerAttr Atrybut 32-bitowej liczby całkowitej
fused_activation_function StringAttr atrybut fused Activation enum
padding StringAttr atrybut padding enum
stride_h IntegerAttr Atrybut 32-bitowej liczby całkowitej
stride_w IntegerAttr Atrybut 32-bitowej liczby całkowitej

Wyniki:

  1. output : tensor dowolnego typu wartości

tfl.convolution_2d_transpose_bias (TFL :: Convolution2DTransposeBiasOp)

Transponuj splot z operatorem odchylenia

Opis:

Wykonuje operację transpozycji splotu na danych wejściowych, z możliwością dodania odchylenia. Zauważ, że jest to niestandardowa operacja, która nie jest obsługiwana w standardowym środowisku wykonawczym.

 Inputs:
  `inputs[0]`: required: the input activation tensor
  `inputs[1]`: required: the filter weight tensor
  `inputs[2]`: optional: the bias tensor
 

Operandy:

  1. input : tensor dowolnego typu wartości
  2. filter : tensor dowolnego typu
  3. bias : tensor dowolnego typu wartości lub żadnego typu

Atrybuty:

Atrybut Typ MLIR Opis
padding StringAttr atrybut padding enum
stride_h IntegerAttr Atrybut 32-bitowej liczby całkowitej
stride_w IntegerAttr Atrybut 32-bitowej liczby całkowitej

Wyniki:

  1. output : tensor dowolnego typu wartości

tfl.cos (TFL :: CosOp)

Operator cosinusa

Opis:

Oblicza cosinus na podstawie elementu

Operandy:

  1. x : tensor dowolnego typu

Atrybuty:

Wyniki:

  1. y : tensor dowolnego typu wartości

tfl.densify (TFL :: DensifyOp)

Operator zagęszczenia

Opis:

Konwertuje rzadki tensor na gęsty format.

Operandy:

  1. input : tensor dowolnego typu wartości

Atrybuty:

Wyniki:

  1. output : tensor dowolnego typu wartości

tfl.depth_to_space (TFL :: DepthToSpaceOp)

Operator DepthToSpace

Opis:

Przestawia dane z głębokości na bloki danych przestrzennych. To jest odwrotna transformacja SpaceToDepth. Dokładniej, ta operacja generuje kopię wejściowego tensora, w którym wartości z wymiaru depth są przenoszone w blokach przestrzennych do wymiarów height i width . block_size wskazuje rozmiar bloku wejściowego i sposób przenoszenia danych.

Operandy:

  1. input : tensor dowolnego typu wartości

Atrybuty:

Atrybut Typ MLIR Opis
block_size IntegerAttr Atrybut 32-bitowej liczby całkowitej

Wyniki:

  1. output : tensor dowolnego typu wartości

tfl.depthwise_conv_2d (TFL :: DepthwiseConv2DOp)

Operator splotu rozdzielnego w głąb

Opis:

Wykonuje operację konwolucji na danych wejściowych.

Wejścia: inputs[0] : wymagane: wejścia tensora aktywacji inputs[1] : wymagane: inputs[2] tensora wagi filtra inputs[2] : opcjonalnie: tensor polaryzacji

Operandy:

  1. input : tensor dowolnego typu wartości
  2. filter : tensor dowolnego typu
  3. bias : tensor dowolnego typu wartości lub żadnego typu

Atrybuty:

Atrybut Typ MLIR Opis
dilation_h_factor IntegerAttr Atrybut 32-bitowej liczby całkowitej
dilation_w_factor IntegerAttr Atrybut 32-bitowej liczby całkowitej
fused_activation_function StringAttr atrybut fused Activation enum
padding StringAttr atrybut padding enum
stride_h IntegerAttr Atrybut 32-bitowej liczby całkowitej
stride_w IntegerAttr Atrybut 32-bitowej liczby całkowitej
depth_multiplier IntegerAttr Atrybut 32-bitowej liczby całkowitej

Wyniki:

  1. output : tensor dowolnego typu wartości

tfl.dequantize (TFL :: DequantizeOp)

Operator dekwantyzacji

Opis:

Konwertuje skwantyzowaną tablicę liczb całkowitych na zmiennoprzecinkowe zgodnie z parametrami kwantyzacji.

Operandy:

  1. input : tensor dowolnego typu wartości

Atrybuty:

Wyniki:

  1. output : tensor dowolnego typu wartości

tfl.div (TFL :: DivOp)

Operator dzielenia

Opis:

Operacja dzielenia według elementów.

Operandy:

  1. lhs : tensor wartości dowolnego typu
  2. rhs : tensor dowolnego typu

Atrybuty:

Atrybut Typ MLIR Opis
fused_activation_function StringAttr atrybut fused Activation enum

Wyniki:

  1. output : tensor dowolnego typu wartości

tfl.elu (TFL :: EluOp)

Operator wykładniczej jednostki liniowej

Opis:

Oblicza wykładniczą liniową f (x) -> exp (x) - 1 dla x <0, x dla x> = 0.

Operandy:

  1. x : tensor dowolnego typu

Atrybuty:

Wyniki:

  1. y : tensor dowolnego typu wartości

tfl.embedding_lookup (TFL :: EmbeddingLookupOp)

Osadzanie operatora wyszukiwania

Opis:

Wyszukuje identyfikatory na liście tensorów osadzania.

Operandy:

  1. lookup : tensor wartości dowolnego typu
  2. value : tensor dowolnego typu wartości

Atrybuty:

Wyniki:

  1. output : tensor dowolnego typu wartości

tfl.equal (TFL :: EqualOp)

Operator równości

Opis:

Zwraca element prawdy x == y element-mądry

Operandy:

  1. x : tensor dowolnego typu
  2. y : tensor dowolnego typu wartości

Atrybuty:

Wyniki:

  1. output : tensor dowolnego typu wartości

tfl.exp (TFL :: ExpOp)

Operator potęgowania naturalnego

Opis:

Wykonuje na wejściu operację naturalnego potęgowania w odniesieniu do elementu.

Operandy:

  1. x : tensor dowolnego typu

Atrybuty:

Wyniki:

  1. y : tensor dowolnego typu wartości

tfl.expand_dims (TFL :: ExpandDimsOp)

Wstawia wymiar 1 do kształtu tensora.

Opis:

Mając input tensora, ta operacja wstawia wymiar 1 na axis indeksu wymiaru kształtu input . axis indeksu wymiaru zaczyna się od zera; jeśli określisz liczbę ujemną dla axis , jest ona liczona wstecz od końca.

Ta operacja jest przydatna, jeśli chcesz dodać wymiar wsadowy do pojedynczego elementu. Na przykład, jeśli masz pojedynczy obraz kształtu [height, width, channels] , możesz zrobić z niego partię 1 obrazu za pomocą expand_dims(image, 0) , co nada kształt [1, height, width, channels] .

Inne przykłady:

 # 't' is a tensor of shape [2]
shape(expand_dims(t, 0)) ==> [1, 2]
shape(expand_dims(t, 1)) ==> [2, 1]
shape(expand_dims(t, -1)) ==> [2, 1]

# 't2' is a tensor of shape [2, 3, 5]
shape(expand_dims(t2, 0)) ==> [1, 2, 3, 5]
shape(expand_dims(t2, 2)) ==> [2, 3, 1, 5]
shape(expand_dims(t2, 3)) ==> [2, 3, 5, 1]
 

Ta operacja wymaga, aby:

-1-input.dims() <= dim <= input.dims()

Ta operacja jest powiązana z squeeze() , która usuwa wymiary rozmiaru 1.

Operandy:

  1. input : tensor dowolnego typu wartości
  2. dim : tensor dowolnego typu całkowitego

Atrybuty:

Wyniki:

  1. output : tensor dowolnego typu wartości

tfl.external_const (TFL :: ExternalConstOp)

Stała zewnętrzna op.

Opis:

Zewnętrzna const op przechowuje buffer_index który wskazuje stałą w płaskim buforze.

Operandy:

Atrybuty:

Atrybut Typ MLIR Opis
buffer_index IntegerAttr Atrybut 32-bitowej liczby całkowitej

Wyniki:

  1. output : tensor dowolnego typu wartości

tfl.fake_quant (TFL :: FakeQuantOp)

Operator FakeQuant

Opis:

Fałszywie kwantyzuj tensor „wejściowy” typu zmiennoprzecinkowego za pomocą skalarów zmiennoprzecinkowych min i max do tensora „wyjściowego” o takim samym kształcie jak wejścia.

Operandy:

  1. input : tensor dowolnego typu wartości

Atrybuty:

Atrybut Typ MLIR Opis
min FloatAttr Atrybut 32-bitowego atrybutu float
max FloatAttr Atrybut 32-bitowego atrybutu float
num_bits IntegerAttr Atrybut 32-bitowej liczby całkowitej
narrow_range BoolAttr atrybut bool

Wyniki:

  1. output : tensor dowolnego typu wartości

tfl.fill (TFL :: FillOp)

Wypełnij tensor podaną wartością.

Opis:

Wypełnij tensor podaną wartością.

Operandy:

  1. dims : tensor dowolnego typu
  2. value : tensor dowolnego typu wartości

Atrybuty:

Wyniki:

  1. res : tensor dowolnego typu

tfl.floor_div (TFL :: FloorDivOp)

Operator div piętra

Opis:

Operacja podziału podłogowego z uwzględnieniem elementów.

Operandy:

  1. lhs : tensor wartości dowolnego typu
  2. rhs : tensor dowolnego typu

Atrybuty:

Wyniki:

  1. output : tensor dowolnego typu wartości

tfl.floor_mod (TFL :: FloorModOp)

Przypomnienie o podziale

Opis:

Operacja przypomnienia o podziale według elementów.

Operandy:

  1. lhs : tensor wartości dowolnego typu
  2. rhs : tensor dowolnego typu

Atrybuty:

Wyniki:

  1. output : tensor dowolnego typu wartości

tfl.floor (TFL :: FloorOp)

Operator piętra

Opis:

Zwraca wartość minimalną elementu wejściowego.

Operandy:

  1. x : tensor dowolnego typu

Atrybuty:

Wyniki:

  1. y : tensor dowolnego typu wartości

tfl.fully_connected (TFL :: FullyConnectedOp)

W pełni skomunikowany op

Opis:

Operandy:

  1. input : tensor dowolnego typu wartości
  2. filter : tensor dowolnego typu
  3. bias : tensor dowolnego typu wartości lub żadnego typu

Atrybuty:

Atrybut Typ MLIR Opis
fused_activation_function StringAttr atrybut fused Activation enum
weights_format StringAttr w pełni połączone opcje ważą atrybut formatu
keep_num_dims BoolAttr atrybut bool

Wyniki:

  1. output : tensor dowolnego typu wartości

tfl.gather_nd (TFL :: GatherNdOp)

Operator Gather_nd

Opis:

Gromadzić wycinki z params do tensora w kształcie określonym przez indices .

Operandy:

  1. params : tensor wartości dowolnego typu
  2. indices : tensor wartości dowolnego typu

Atrybuty:

Wyniki:

  1. output : tensor dowolnego typu wartości

tfl.gather (TFL :: GatherOp)

Zbierz operatora

Opis:

Gromadzić wycinki z paramsaxis według indices .

Operandy:

  1. params : tensor wartości dowolnego typu
  2. indices : tensor wartości dowolnego typu

Atrybuty:

Atrybut Typ MLIR Opis
axis IntegerAttr Atrybut 32-bitowej liczby całkowitej

Wyniki:

  1. output : tensor dowolnego typu wartości

tfl.greater_equal (TFL :: GreaterEqualOp)

Operator równości większej

Opis:

Operacja większe_ równe pod względem elementów.

Operandy:

  1. lhs : tensor wartości dowolnego typu
  2. rhs : tensor dowolnego typu

Atrybuty:

Wyniki:

  1. output : tensor dowolnego typu wartości

tfl.greater (TFL :: GreaterOp)

Większy operator

Opis:

Większa operacja pod względem elementów.

Operandy:

  1. lhs : tensor wartości dowolnego typu
  2. rhs : tensor dowolnego typu

Atrybuty:

Wyniki:

  1. output : tensor dowolnego typu wartości

tfl.hard_swish (TFL :: HardSwishOp)

Funkcja aktywacji Hardswish.

Opis:

Oblicza twardą funkcję aktywacji f (x) -> (x * relu6 (x + 3)) / 6 elementarną.

Operandy:

  1. input : tensor dowolnego typu wartości

Atrybuty:

Wyniki:

  1. out : tensor wartości dowolnego typu

tfl.l2_normalization (TFL :: L2NormalizationOp)

Operator normalizacji L2

Opis:

L2 Normalizacja Op

Operandy:

  1. input : tensor dowolnego typu wartości

Atrybuty:

Atrybut Typ MLIR Opis
fused_activation_function StringAttr atrybut fused Activation enum

Wyniki:

  1. output : tensor dowolnego typu wartości

tfl.lstm (TFL :: LSTMOp)

Pełny operator lstm

Opis:

Moduł pamięci krótkotrwałej (LSTM), powtarzalna warstwa sieci. Domyślna implementacja bez peephole jest oparta na: http://deeplearning.cs.cmu.edu/pdfs/Hochreiter97_lstm.pdf S. Hochreiter i J. Schmidhuber. „Długotrwała pamięć”. Neural Computation, 9 (8): 1735-1780, 1997. Implementacja peephole jest oparta na: https://research.google.com/pubs/archive/43905.pdf Hasim Sak, Andrew Senior i Francoise Beaufays. „Architektury rekurencyjnych sieci neuronowych w pamięci długookresowej do modelowania akustycznego na dużą skalę. INTERSPEECH, 2014. Sprzężenie bramki wejścia i zapomnienia (CIFG) jest oparte na: http://arxiv.org/pdf/1503.04069.pdf Greff et al . „LSTM: Odyseja przestrzeni wyszukiwania” Normalizacja warstw jest oparta na: https://arxiv.org/pdf/1607.06450.pdf Ba et al. „Layer Normalization”

Operandy:

  1. input : tensor dowolnego typu wartości
  2. input_to_input_weights : tensor wartości dowolnego typu lub żadnego typu
  3. input_to_forget_weights : tensor wartości dowolnego typu
  4. input_to_cell_weights : tensor wartości dowolnego typu
  5. input_to_output_weights : tensor wartości dowolnego typu
  6. recurrent_to_input_weights : tensor dowolnego typu wartości lub żadnego typu
  7. recurrent_to_forget_weights : tensor wartości dowolnego typu
  8. recurrent_to_cell_weights : tensor wartości dowolnego typu
  9. recurrent_to_output_weights : tensor wartości dowolnego typu
  10. cell_to_input_weights : tensor dowolnego typu wartości lub żadnego typu
  11. cell_to_forget_weights : tensor dowolnego typu wartości lub żadnego typu
  12. cell_to_output_weights : tensor dowolnego typu wartości lub żadnego typu
  13. input_gate_bias : tensor dowolnego typu wartości lub żadnego typu
  14. forget_gate_bias : tensor wartości dowolnego typu
  15. cell_bias : tensor dowolnego typu wartości
  16. output_gate_bias : tensor wartości dowolnego typu
  17. projection_weights : tensor dowolnego typu lub żadnego typu
  18. projection_bias : tensor dowolnego typu wartości lub żadnego typu
  19. input_activation_state : input_activation_state tensor
  20. input_cell_state : input_cell_state tensor
  21. input_layer_norm_coefficients : tensor dowolnego typu wartości lub żadnego typu
  22. forget_layer_norm_coefficients : tensor dowolnego typu lub żadnego typu
  23. cell_layer_norm_coefficients : tensor dowolnego typu lub żadnego typu
  24. output_layer_norm_coefficients : tensor dowolnego typu lub żadnego typu

Atrybuty:

Atrybut Typ MLIR Opis
fused_activation_function StringAttr atrybut fused Activation enum
cell_clip FloatAttr Atrybut 32-bitowego atrybutu float
proj_clip FloatAttr Atrybut 32-bitowego atrybutu float
kernel_type StringAttr lstm typ jądra enum case FULL atrybut

Wyniki:

  1. output : tensor dowolnego typu wartości

tfl.leaky_relu (TFL :: LeakyReluOp)

Operator Leaky Relu

Opis:

Nieszczelny operator ReLU pod względem elementu x -> x> = 0? x: (alfa * x)

Operandy:

  1. input : tensor dowolnego typu wartości

Atrybuty:

Atrybut Typ MLIR Opis
alpha FloatAttr Atrybut 32-bitowego atrybutu float

Wyniki:

  1. output : tensor dowolnego typu wartości

tfl.less_equal (TFL :: LessEqualOp)

Operator Less_equal

Opis:

Operacja less_equal pod względem elementów.

Operandy:

  1. lhs : tensor wartości dowolnego typu
  2. rhs : tensor dowolnego typu

Atrybuty:

Wyniki:

  1. output : tensor dowolnego typu wartości

tfl.less (TFL :: LessOp)

Mniej operatora

Opis:

Operacja mniej elementarna.

Operandy:

  1. lhs : tensor wartości dowolnego typu
  2. rhs : tensor dowolnego typu

Atrybuty:

Wyniki:

  1. output : tensor dowolnego typu wartości

tfl.local_response_normalization (TFL :: LocalResponseNormalizationOp)

Lokalna normalizacja odpowiedzi.

Opis:

Tensor input 4-W jest traktowany jako trójwymiarowa tablica wektorów 1-D (wzdłuż ostatniego wymiaru), a każdy wektor jest normalizowany niezależnie. W ramach danego wektora każdy składnik jest dzielony przez ważoną, kwadratową sumę danych wejściowych w promieniu depth_radius . Szczegółowo,

 sqr_sum[a, b, c, d] =
    sum(input[a, b, c, d - depth_radius : d + depth_radius + 1] ** 2)
output = input / (bias + alpha * sqr_sum) ** beta
 

Aby uzyskać szczegółowe informacje, patrz Krizhevsky i wsp., Klasyfikacja ImageNet z głębokimi konwolucyjnymi sieciami neuronowymi (NIPS 2012) .

Operandy:

  1. input : tensor dowolnego typu wartości

Atrybuty:

Atrybut Typ MLIR Opis
radius IntegerAttr Atrybut 32-bitowej liczby całkowitej
bias FloatAttr Atrybut 32-bitowego atrybutu float
alpha FloatAttr Atrybut 32-bitowego atrybutu float
beta FloatAttr Atrybut 32-bitowego atrybutu float

Wyniki:

  1. output : tensor dowolnego typu wartości

tfl.log (TFL :: LogOp)

Operator logarytmu naturalnego

Opis:

Wykonuje operację logarytmu naturalnego z uwzględnieniem elementów na wejściu.

Operandy:

  1. x : tensor dowolnego typu

Atrybuty:

Wyniki:

  1. y : tensor dowolnego typu wartości

tfl.log_softmax (TFL :: LogSoftmaxOp)

Zaloguj operatora softmax

Opis:

Oblicza logarytmiczne aktywacje softmax dla elementów według następującego wzoru

wejście - log (redukuj_sum (exp (wejście), dim))

Operandy:

  1. input : tensor dowolnego typu wartości

Atrybuty:

Wyniki:

  1. output : tensor dowolnego typu wartości

tfl.logical_and (TFL :: LogicalAndOp)

Operator logiczny AND

Opis:

Operacja logiczna AND z uwzględnieniem elementów.

Operandy:

  1. lhs : tensor wartości dowolnego typu
  2. rhs : tensor dowolnego typu

Atrybuty:

Wyniki:

  1. output : tensor dowolnego typu wartości

tfl.logical_not (TFL :: LogicalNotOp)

Operator logiczny NOT

Opis:

Operacja logiczna NOT z punktu widzenia elementów.

Operandy:

  1. lhs : tensor wartości dowolnego typu

Atrybuty:

Wyniki:

  1. output : tensor dowolnego typu wartości

tfl.logical_or (TFL :: LogicalOrOp)

Operator logiczny OR

Opis:

Operacja logiczna OR z uwzględnieniem elementów.

Operandy:

  1. lhs : tensor wartości dowolnego typu
  2. rhs : tensor dowolnego typu

Atrybuty:

Wyniki:

  1. output : tensor dowolnego typu wartości

tfl.logistic (TFL :: LogisticOp)

Operator logistyczny

Opis:

Oblicza sigmoidę na podstawie elementów wejściowych

Operandy:

  1. x : tensor dowolnego typu

Atrybuty:

Wyniki:

  1. y : tensor dowolnego typu wartości

tfl.matrix_diag (TFL :: MatrixDiagOp)

 Returns a tensor with the provided diagonal and everything else padded with zeros.
 

Opis:

Biorąc pod uwagę przekątną, zwraca tensor z przekątną i wszystkim innym wypełnionym zerami. Załóżmy, że przekątna ma k wymiarów [I, J, K, ..., N] , to wynikiem jest tensor rzędu k+1 o wymiarach [I, J, K, ..., N, N] gdzie: output[i, j, k, ..., m, n] = 1{m=n} * diagonal[i, j, k, ..., n].

Operandy:

  1. diagonal : tensor dowolnego typu

Atrybuty:

Wyniki:

  1. output : tensor dowolnego typu wartości

tfl.matrix_set_diag (TFL :: MatrixSetDiagOp)

 Returns a batched matrix tensor with new batched diagonal values.
 

Opis:

Biorąc pod uwagę input i diagonal , ta operacja zwraca tensor o tym samym kształcie i wartościach co input , z wyjątkiem głównej przekątnej najbardziej wewnętrznych macierzy. Zostaną one nadpisane wartościami po diagonal .

Operandy:

  1. input : tensor 32-bitowej liczby zmiennoprzecinkowej lub 32-bitowej liczby całkowitej lub 64-bitowej liczby całkowitej lub 8-bitowej liczby całkowitej lub typu QI8 lub typu QI16 lub typu QUI8 lub typu TFLite uint8 lub wartości typu TFLite quint8
  2. diagonal : tensor 32-bitowej liczby zmiennoprzecinkowej lub 32-bitowej liczby całkowitej lub 64-bitowej liczby całkowitej lub 8-bitowej liczby całkowitej lub typu QI8 lub typu QI16 lub typu QUI8 lub typu TFLite uint8 lub TFLite typu quint8

Atrybuty:

Wyniki:

  1. output : tensor 32-bitowej liczby zmiennoprzecinkowej lub 32-bitowej liczby całkowitej lub 64-bitowej liczby całkowitej lub 8-bitowej liczby całkowitej lub typu QI8 lub typu QI16 lub typu QUI8 lub typu TFLite uint8 lub wartości typu TFLite quint8

tfl.max_pool_2d (TFL :: MaxPool2DOp)

Max Pool 2D op

Opis:

Wykonuje maksymalną pulę 2D na wejściu.

Wejścia: inputs[0] : wymagane: tensor wejściowy

Operandy:

  1. input : tensor dowolnego typu wartości

Atrybuty:

Atrybut Typ MLIR Opis
padding StringAttr atrybut padding enum
stride_w IntegerAttr Atrybut 32-bitowej liczby całkowitej
stride_h IntegerAttr Atrybut 32-bitowej liczby całkowitej
filter_width IntegerAttr Atrybut 32-bitowej liczby całkowitej
filter_height IntegerAttr Atrybut 32-bitowej liczby całkowitej
fused_activation_function StringAttr atrybut fused Activation enum

Wyniki:

  1. output : tensor dowolnego typu wartości

tfl.max_pooling_with_argmax_2d (TFL :: MaxPoolingWithArgMax2DOp)

Max Pool 2D z argmax op

Opis:

Wykonuje maksymalne pule na wejściu i wyprowadza zarówno maksymalne wartości, jak i indeksy. Każdy indeks jest spłaszczonym indeksem w tablicy podrzędnej o rozmiarze „filter_w” x „filter_h”. Uwaga: jest to niestandardowa operacja, która nie jest obsługiwana w standardowym środowisku wykonawczym.

Wejścia: inputs[0] : wymagane: tensor aktywacji wejścia

Operandy:

  1. input : tensor dowolnego typu wartości

Atrybuty:

Atrybut Typ MLIR Opis
padding StringAttr atrybut padding enum
stride_w IntegerAttr Atrybut 32-bitowej liczby całkowitej
stride_h IntegerAttr Atrybut 32-bitowej liczby całkowitej
filter_w IntegerAttr Atrybut 32-bitowej liczby całkowitej
filter_h IntegerAttr Atrybut 32-bitowej liczby całkowitej

Wyniki:

  1. value : tensor dowolnego typu wartości
  2. indices : tensor wartości dowolnego typu

tfl.max_unpooling_2d (TFL :: MaxUnpooling2DOp)

Max Unpool 2D

Opis:

Wykonuje maksymalne rozpakowanie. Do pewnego stopnia jest to odwrotna operacja maksymalnego łączenia: elementy w tensorze aktywacji wejścia są przechowywane w pozycji określonej przez indeksy wejściowe. Zwróć uwagę, że jest to niestandardowa operacja, która nie jest obsługiwana w standardowym środowisku wykonawczym.

Wejścia: inputs[0] : wymagane: wejścia tensora aktywacji inputs[1] : wymagane: wskaźniki wejść

Operandy:

  1. input : tensor dowolnego typu wartości
  2. indices : tensor wartości dowolnego typu

Atrybuty:

Atrybut Typ MLIR Opis
padding StringAttr atrybut padding enum
stride_w IntegerAttr Atrybut 32-bitowej liczby całkowitej
stride_h IntegerAttr Atrybut 32-bitowej liczby całkowitej
filter_w IntegerAttr Atrybut 32-bitowej liczby całkowitej
filter_h IntegerAttr Atrybut 32-bitowej liczby całkowitej

Wyniki:

  1. outputs : tensor dowolnego typu wartości

tfl.maximum (TFL :: MaximumOp)

Operator maks

Opis:

Maksymalne działanie w odniesieniu do elementów.

Operandy:

  1. lhs : tensor wartości dowolnego typu
  2. rhs : tensor dowolnego typu

Atrybuty:

Wyniki:

  1. max : tensor dowolnego typu wartości

tfl.mean (TFL :: MeanOp)

Średni operator

Opis:

Oblicza średnią elementów w wymiarach tensora. Zmniejsza input_tensor wzdłuż wymiarów podanych na osi. O ile nie jest prawdziwe keepdims, ranga tensora jest zmniejszana o 1 dla każdego wpisu na osi. Jeśli prawdziwe są wymiary keepdims, zmniejszone wymiary są zachowywane przy długości 1.

Operandy:

  1. input : tensor dowolnego typu wartości
  2. axis : tensor dowolnego typu wartości

Atrybuty:

Atrybut Typ MLIR Opis
keep_dims BoolAttr atrybut bool

Wyniki:

  1. output : tensor dowolnego typu wartości

tfl.minimum (TFL :: MinimumOp)

Operator min

Opis:

Minimalna operacja w odniesieniu do elementów.

Operandy:

  1. lhs : tensor wartości dowolnego typu
  2. rhs : tensor dowolnego typu

Atrybuty:

Wyniki:

  1. min : tensor dowolnego typu

tfl.mirror_pad (TFL :: MirrorPadOp)

MirrorPad Operator. Wypełnia tensor wartościami lustrzanymi.

Opis:

Ta operacja wypełnia dane wejściowe lustrzanymi wartościami zgodnie z określonymi wypełnieniami. paddings to tensor całkowity o kształcie [n, 2], gdzie n to rząd danych wejściowych. Dla każdego wymiaru D danych wejściowych dopełnienia [D, 0] wskazują, ile wartości należy dodać przed zawartością danych wejściowych w tym wymiarze, a dopełnienia [D, 1] wskazują, ile wartości należy dodać po zawartości danych wejściowych w tym wymiarze.

Zarówno dopełnienia [D, 0], jak i dopełnienia [D, 1] nie mogą być większe niż input.dim_size (D) (lub input.dim_size (D) - 1), jeśli parametr copy_border ma wartość true (odpowiednio, jeśli false).

Wypełniony rozmiar każdego wymiaru D wyjścia to:

paddings (D, 0) + input.dim_size (D) + paddings (D, 1)

Operandy:

  1. input : tensor dowolnego typu wartości
  2. pad : tensor dowolnego typu

Atrybuty:

Atrybut Typ MLIR Opis
mode StringAttr Atrybut wyliczenia podkładki lustrzanej

Wyniki:

  1. output : tensor dowolnego typu wartości

tfl.mul (TFL :: MulOp)

Operator mnożenia

Opis:

Operacja mnożenia według elementów.

Operandy:

  1. lhs : tensor wartości dowolnego typu
  2. rhs : tensor dowolnego typu

Atrybuty:

Atrybut Typ MLIR Opis
fused_activation_function StringAttr atrybut fused Activation enum

Wyniki:

  1. output : tensor dowolnego typu wartości

tfl.neg (TFL :: NegOp)

Operator negacji

Opis:

Oblicza elementarną negację wejścia

Operandy:

  1. x : tensor dowolnego typu

Atrybuty:

Wyniki:

  1. y : tensor dowolnego typu wartości

tfl.non_max_suppression_v4 (TFL :: NonMaxSuppressionV4Op)

Chciwie wybiera podzbiór obwiedni w malejącej kolejności punktacji,

Opis:

przycinanie pól, które mają wysoki współczynnik IOU (intersection-over-union), pokrywają się z poprzednio wybranymi ramkami. Ramki ograniczające z wynikiem mniejszym niż score_threshold są usuwane. Ramki ograniczające są dostarczane jako [y1, x1, y2, x2], gdzie (y1, x1) i (y2, x2) są współrzędnymi dowolnej pary ukośnych narożników prostokąta, a współrzędne można podać jako znormalizowane (tj. przedział [0, 1]) lub bezwzględny. Zauważ, że ten algorytm jest niezależny od miejsca, w którym początek znajduje się w układzie współrzędnych, a bardziej ogólnie jest niezmienny względem przekształceń ortogonalnych i translacji układu współrzędnych; w ten sposób translacja lub odbicia układu współrzędnych powodują, że algorytm wybiera te same pola. Wynikiem tej operacji jest zestaw liczb całkowitych indeksowanych w wejściowym zbiorze obwiedni reprezentujących wybrane pola. Współrzędne ramki granicznej odpowiadające wybranym indeksom można następnie uzyskać za pomocą tf.gather operation . Na przykład: selected_indices = tf.image.non_max_suppression_v2 (box, score, max_output_size, iou_threshold, score_threshold), selected_boxes = tf.gather (box, selected_indices)

Operandy:

  1. boxes : tensor dowolnego typu wartości
  2. scores : tensor dowolnego typu wartości
  3. max_output_size : tensor wartości dowolnego typu
  4. iou_threshold : tensor wartości dowolnego typu
  5. score_threshold : tensor wartości dowolnego typu

Atrybuty:

Wyniki:

  1. selected_indices : tensor dowolnego typu
  2. valid_outputs : tensor wartości dowolnego typu

tfl.non_max_suppression_v5 (TFL :: NonMaxSuppressionV5Op)

Chciwie wybiera podzbiór obwiedni w malejącej kolejności punktacji,

Opis:

przycinanie pól, które mają wysoki współczynnik IOU (intersection-over-union), pokrywają się z poprzednio wybranymi ramkami. Ramki ograniczające z wynikiem mniejszym niż score_threshold są usuwane. Ramki ograniczające są dostarczane jako [y1, x1, y2, x2], gdzie (y1, x1) i (y2, x2) są współrzędnymi dowolnej pary ukośnych narożników prostokąta, a współrzędne można podać jako znormalizowane (tj. przedział [0, 1]) lub bezwzględny. Zauważ, że ten algorytm jest niezależny od tego, gdzie początek znajduje się w układzie współrzędnych, a bardziej ogólnie jest niezmienny w stosunku do ortogonalnych przekształceń i translacji układu współrzędnych; w ten sposób translacja lub odbicia układu współrzędnych powodują, że algorytm wybiera te same pola. Wynikiem tej operacji jest zestaw liczb całkowitych indeksowanych w wejściowym zbiorze obwiedni reprezentujących wybrane pola. Współrzędne ramki granicznej odpowiadające wybranym indeksom można następnie uzyskać za pomocą tf.gather operation . For example: selected_indices = tf.image.non_max_suppression_v2( boxes, scores, max_output_size, iou_threshold, score_threshold) selected_boxes = tf.gather(boxes, selected_indices) This op also supports a Soft-NMS (with Gaussian weighting) mode (cf Bodla et al, https://arxiv.org/abs/1704.04503) where boxes reduce the score of other overlapping boxes instead of directly causing them to be pruned. To enable this Soft-NMS mode, set the soft_nms_sigma parameter to be larger than 0.

Operands:

  1. boxes : tensor of any type values
  2. scores : tensor of any type values
  3. max_output_size : tensor of any type values
  4. iou_threshold : tensor of any type values
  5. score_threshold : tensor of any type values
  6. soft_nms_sigma : tensor of any type values

Attributes:

Results:

  1. selected_indices : tensor of any type values
  2. selected_scores : tensor of any type values
  3. valid_outputs : tensor of any type values

tfl.not_equal (TFL::NotEqualOp)

Not_equal operator

Description:

Element-wise not_equal operation.

Operands:

  1. lhs : tensor of any type values
  2. rhs : tensor of any type values

Attributes:

Results:

  1. output : tensor of any type values

tfl.NumericVerify (TFL::NumericVerifyOp)

Verifies the numericals of the two operands

Description:

The NumericVerify op is a debugging op to verify the numericals of the two activations. It is a custom op in TFLite.

Operands:

  1. input : tensor of any type values
  2. ref : tensor of any type values

Attributes:

Attribute MLIR Type Description
tolerance FloatAttr 32-bit float attribute attribute

Results:

tfl.one_hot (TFL::OneHotOp)

OneHot operator

Description:

Returns a one-hot tensor.The locations represented by indices in indices take value on_value , while all other locations take value off_value .

If the input indices is rank N , the output will have rank N+1 , The new axis is created at dimension axis (default: the new axis is appended at the end).

Operands:

  1. indices : tensor of any type values
  2. depth : tensor of any type values
  3. on_value : tensor of any type values
  4. off_value : tensor of any type values

Attributes:

Attribute MLIR Type Description
axis IntegerAttr 32-bit integer attribute attribute

Results:

  1. output : tensor of any type values

tfl.prelu (TFL::PReluOp)

Parameterized Relu operator

Description:

Parameterized Relu operator x -> x >= 0 ? x : (alpha * x) where alpha is a trainable tensor. alpha should have one less rank than the input as it doesn't have the batch dimension, and the other dimensions either should be the same size as input or size 1, where it is broadcasted in the second case.

Operands:

  1. input : tensor of any type values
  2. alpha : tensor of any type values

Attributes:

Results:

  1. output : tensor of any type values

tfl.pack (TFL::PackOp)

Packs a list of tensors along a dimension into one tensor

Description:

Packs a list of values_count rank- R tensors into one rank- (R+1) tensor.

Packs the values_count tensors in values into a tensor with rank one higher than each tensor in values , by packing them along the axis dimension.

Given a list of tensors of shape (A, B, C) ;

if axis == 0 then the output tensor will have the shape (N, A, B, C) . if axis == 1 then the output tensor will have the shape (A, N, B, C) . Etc.

For example:

 # 'x' is [1, 4]
# 'y' is [2, 5]
# 'z' is [3, 6]
pack([x, y, z]) => [[1, 4], [2, 5], [3, 6]]  # Pack along first dim.
pack([x, y, z], axis=1) => [[1, 2, 3], [4, 5, 6]]
 

This is the opposite of unpack .

Operands:

  1. values : tensor of any type values

Attributes:

Attribute MLIR Type Description
values_count IntegerAttr 32-bit integer attribute attribute
axis IntegerAttr 32-bit integer attribute attribute

Results:

  1. output : tensor of any type values

tfl.pad (TFL::PadOp)

Padding operator

Description:

This operation pads a input with zeros according to the paddings you specify. paddings is an integer tensor with shape [Dn, 2] , where n is the rank of input . For each dimension D of input , paddings[D, 0] indicates how many zeros to add before the contents of input in that dimension, and paddings[D, 1] indicates how many zeros to add after the contents of input in that dimension.

The padded size of each dimension D of the output is:

paddings(D, 0) + input.dim_size(D) + paddings(D, 1)

For example:

 # 't' is [[1, 1], [2, 2]]
# 'paddings' is [[1, 1], [2, 2]]
# rank of 't' is 2
pad(t, paddings) ==> [[0, 0, 0, 0, 0, 0]
                      [0, 0, 1, 1, 0, 0]
                      [0, 0, 2, 2, 0, 0]
                      [0, 0, 0, 0, 0, 0]]
 

Operands:

  1. input : tensor of any type values
  2. padding : tensor of any type values

Attributes:

Results:

  1. output : tensor of any type values

tfl.padv2 (TFL::PadV2Op)

Padding operator v2

Description:

This operation pads a input according to the paddings and constant_values you specify. paddings is an integer tensor with shape [Dn, 2] , where n is the rank of input . For each dimension D of input , paddings[D, 0] indicates how many zeros to add before the contents of input in that dimension, and paddings[D, 1] indicates how many zeros to add after the contents of input in that dimension. constant_values is a scalar tensor of the same type as input that indicates the value to use for padding input .

The padded size of each dimension D of the output is:

paddings(D, 0) + input.dim_size(D) + paddings(D, 1)

For example:

 # 't' is [[1, 1], [2, 2]]
# 'paddings' is [[1, 1], [2, 2]]
# rank of 't' is 2
pad(t, paddings) ==> [[0, 0, 0, 0, 0, 0]
                      [0, 0, 1, 1, 0, 0]
                      [0, 0, 2, 2, 0, 0]
                      [0, 0, 0, 0, 0, 0]]
 

Operands:

  1. input : tensor of any type values
  2. padding : tensor of any type values
  3. constant_values : tensor of any type values

Attributes:

Results:

  1. output : tensor of any type values

tfl.pow (TFL::PowOp)

Power operator

Description:

Element-wise power operation.

Operands:

  1. lhs : tensor of any type values
  2. rhs : tensor of any type values

Attributes:

Results:

  1. output : tensor of any type values

tfl.pseudo_qconst (TFL::QConstOp)

Quantized constant pseudo op

Description:

Represents a quantized constant value in TensorFlow Lite dialect. This is not an actual operation and it will be lowered to buffer instead. The quantization parameters are stored as a type attribute in this constant.

Operands:

Attributes:

Attribute MLIR Type Description
qtype TypeAttr Tensor type attribute attribute
value ElementsAttr constant vector/tensor attribute attribute

Results:

  1. output : tensor of any type values

tfl.quantize (TFL::QuantizeOp)

Quantize operator

Description:

Converts floating point tensors to quantized integer tensors according to the quantization parameters defined in the type attribute.

Operands:

  1. input : tensor of any type values

Attributes:

Attribute MLIR Type Description
qtype TypeAttr Tensor type attribute attribute

Results:

  1. output : tensor of any type values

tfl.range (TFL::RangeOp)

Range operator

Description:

Returns a 1D tensor defined by a sequence from start to limit with a given delta .

Operands:

  1. start : tensor of any type values
  2. limit : tensor of any type values
  3. delta : tensor of any type values

Attributes:

Results:

  1. result : tensor of any type values

tfl.rank (TFL::RankOp)

Rank operator.

Description:

Returns the rank of a tensor.

Operands:

  1. input : tensor of any type values

Attributes:

Results:

  1. output : tensor of any integer type

tfl.reduce_any (TFL::ReduceAnyOp)

Computes the "logical or" of elements across dimensions of a tensor.

Description:

Reduces input along the dimensions given in axis . Unless keep_dims is true, the rank of the tensor is reduced by 1 for each entry in axis . If keep_dims is true, the reduced dimensions are retained with length 1.

Operands:

  1. input : tensor of any type values
  2. reduction_indices : tensor of any type values

Attributes:

Attribute MLIR Type Description
keep_dims BoolAttr bool attribute attribute

Results:

  1. output : tensor of any type values

tfl.reduce_max (TFL::ReduceMaxOp)

Max-reduction operator

Description:

Computes the max reduction along the specified axes

Operands:

  1. input : tensor of any type values
  2. axes : tensor of any type values

Attributes:

Attribute MLIR Type Description
keep_dims BoolAttr bool attribute attribute

Results:

  1. «unnamed»: tensor of any type values

tfl.reduce_min (TFL::ReduceMinOp)

Min-reduction operator

Description:

Computes the min reduction along the specified axes

Operands:

  1. input : tensor of any type values
  2. axes : tensor of any type values

Attributes:

Attribute MLIR Type Description
keep_dims BoolAttr bool attribute attribute

Results:

  1. «unnamed»: tensor of any type values

tfl.reduce_prod (TFL::ReduceProdOp)

Prod-reduction operator

Description:

Computes the product along the specified axes

Operands:

  1. input : tensor of any type values
  2. axes : tensor of any type values

Attributes:

Attribute MLIR Type Description
keep_dims BoolAttr bool attribute attribute

Results:

  1. «unnamed»: tensor of any type values

tfl.relu_n1_to_1 (TFL::Relu1Op)

Relu1 operator

Description:

Element-wise Relu1 operator x -> max(-1, min(1, x))

Operands:

  1. x : tensor of any type values

Attributes:

Results:

  1. y : tensor of any type values

tfl.relu6 (TFL::Relu6Op)

Relu6 operator

Description:

Element-wise Relu6 operator x -> max(0, min(6, x))

Operands:

  1. x : tensor of any type values

Attributes:

Results:

  1. y : tensor of any type values

tfl.relu (TFL::ReluOp)

Relu operator

Description:

Element-wise Relu operator x -> max(0, x)

Operands:

  1. x : tensor of any type values

Attributes:

Results:

  1. y : tensor of any type values

tfl.reshape (TFL::ReshapeOp)

Reshape operator

Description:

Produces a tensor with the same values but different static shape defined by the output type.

Operands:

  1. input : tensor of any type values
  2. shape : tensor of any type values

Attributes:

Results:

  1. output : tensor of any type values

tfl.resize_bilinear (TFL::ResizeBilinearOp)

ResizeBilinear Op

Description:

Resize images to size using bilinear interpolation.

Operands:

  1. input : tensor of any type values
  2. size : tensor of any type values

Attributes:

Attribute MLIR Type Description
align_corners BoolAttr bool attribute attribute
half_pixel_centers BoolAttr bool attribute attribute

Results:

  1. output : tensor of any type values

tfl.resize_nearest_neighbor (TFL::ResizeNearestNeighborOp)

ResizeNearestNeighbor Op

Description:

Resize images to size using nearest neighbor interpolation.

Operands:

  1. input : tensor of any type values
  2. size : tensor of any type values

Attributes:

Attribute MLIR Type Description
align_corners BoolAttr bool attribute attribute

Results:

  1. output : tensor of any type values

tfl.reverse_sequence (TFL::ReverseSequenceOp)

Reverses variable length slices.

Description:

This op first slices input along the dimension batch_dim , and for each slice i , reverses the first seq_lengths[i] elements along the dimension seq_dim .

The elements of seq_lengths must obey seq_lengths[i] <= input.dims[seq_dim] , and seq_lengths must be a vector of length input.dims[batch_dim] .

The output slice i along dimension batch_dim is then given by input slice i , with the first seq_lengths[i] slices along dimension seq_dim reversed.

Operands:

  1. input : tensor of any type values
  2. seq_lengths : tensor of any type values

Attributes:

Attribute MLIR Type Description
seq_dim IntegerAttr 32-bit integer attribute attribute
batch_dim IntegerAttr 32-bit integer attribute attribute

Results:

  1. output : tensor of any type values

tfl.reverse_v2 (TFL::ReverseV2Op)

ReverseV2 Operator

Description:

Reverses specific dimensions of a tensor.

Given a tensor, and a int32/int64 tensor axis representing the set of dimensions of tensor to reverse. This operation reverses each dimension i for which there exists j st axis[j] == i.

Args: tensor: A Tensor. Must be one of the following types: uint8, int16, int32, int64, float32, bool Up to 8-D.

axis: A Tensor. Must be one of the following types: int32, int64. with only 1 element which is the axis index. TODO: Add support for multiple elements.

Operands:

  1. input : tensor of any type values
  2. axis : tensor of any type values

Attributes:

Results:

  1. output : tensor of any type values

tfl.round (TFL::RoundOp)

Round operator

Description:

Rounds the values of a tensor to the nearest integer, element-wise.

Operands:

  1. x : tensor of any type values

Attributes:

Results:

  1. y : tensor of any type values

tfl.rsqrt (TFL::RsqrtOp)

Reciprocal of square root operator

Description:

Computes element-wise reverse square root of input

Operands:

  1. x : tensor of any type values

Attributes:

Results:

  1. y : tensor of any type values

tfl.svdf (TFL::SVDFOp)

Single value decomposition filter operator

Description:

The SVDF op is a decomposition of a densely connected op into low rank filters. For details: https://research.google.com/pubs/pub43813.html https://arxiv.org/abs/1812.02802

Operands:

  1. input : tensor of any type values
  2. feature_weights : tensor of any type values
  3. time_weights : tensor of any type values
  4. input_gate_bias : tensor of any type values or none type
  5. activation_state : stateful tensor

Attributes:

Attribute MLIR Type Description
rank IntegerAttr 32-bit integer attribute attribute
fused_activation_function StringAttr fused activation enum attribute

Results:

  1. output : tensor of any type values

tfl.segment_sum (TFL::SegmentSumOp)

SegmentSum operator

Description:

Computes the sum along segments of a tensor.

Operands:

  1. data : tensor of any type values
  2. segment_ids : tensor of any type values

Attributes:

Results:

  1. output : tensor of any type values

tfl.select (TFL::SelectOp)

Select operator

Description:

Select values of 'x' if the corresponding value of 'condition' is true or the value of 'y' if false. There are valid condition input sizes:

  1. Either the same shape (in which case the select is elementwise), or
  2. condition must be Rank 1 and match over the first dimension.

Operands:

  1. condition : tensor of any type values
  2. x : tensor of any type values
  3. y : tensor of any type values

Attributes:

Results:

  1. output : tensor of any type values

tfl.select_v2 (TFL::SelectV2Op)

SelectV2 operator

Description:

Select values of 'x' if the corresponding value of 'condition' is true or the value of 'y' if false. There are valid condition input sizes:

  1. Either the same shape (in which case the select is elementwise), or
  2. Broadcastable shapes between 'condition', 'x' and 'y'.

Operands:

  1. condition : tensor of any type values
  2. x : tensor of any type values
  3. y : tensor of any type values

Attributes:

Results:

  1. output : tensor of any type values

tfl.shape (TFL::ShapeOp)

Shape operator

Description:

Returns the shape of a tensor.

Operands:

  1. input : tensor of any type values

Attributes:

Attribute MLIR Type Description
out_type Attribute derived attribute attribute

Results:

  1. output : tensor of any type values

tfl.sin (TFL::SinOp)

Sine operator

Description:

Computes element-wise Sine of input

Operands:

  1. x : tensor of any type values

Attributes:

Results:

  1. y : tensor of any type values

tfl.slice (TFL::SliceOp)

Return a slice from 'input'.

Description:

The output tensor is a tensor with dimensions described by 'size' whose values are extracted from 'input' starting at the offsets in 'begin'.

begin is zero-based; size is one-based. If size[i] is -1, all remaining elements in dimension i are included in the slice. In other words, this is equivalent to setting: size[i] = input.dim_size(i) - begin[i]

Requirements : 0 <= begin[i] <= begin[i] + size[i] <= Di for i in [0, n)

Operands:

  1. input : tensor of any type values
  2. begin : tensor of any type values
  3. size : tensor of any type values

Attributes:

Results:

  1. output : tensor of any type values

tfl.softmax (TFL::SoftmaxOp)

Softmax operator

Description:

Computes element-wise softmax activations with the following formula

exp(input) / tf.reduce_sum(exp(input * beta), dim)

Operands:

  1. input : tensor of any type values

Attributes:

Attribute MLIR Type Description
beta FloatAttr 32-bit float attribute attribute

Results:

  1. output : tensor of any type values

tfl.space_to_batch_nd (TFL::SpaceToBatchNdOp)

SpaceToBatchNd operator

Description:

This operation reshapes space dimensions into the "batch" dimension 0

Operands:

  1. input : tensor of any type values
  2. block_shape : tensor of any type values
  3. paddings : tensor of any type values

Attributes:

Results:

  1. output : tensor of any type values

tfl.space_to_depth (TFL::SpaceToDepthOp)

SpaceToDepth operator

Description:

Rearranges blocks of spatial data, into depth. More specifically, this op outputs a copy of the input tensor where values from the height and width dimensions are moved to the depth dimension. block_size indicates the input block size.

Operands:

  1. input : tensor of any type values

Attributes:

Attribute MLIR Type Description
block_size IntegerAttr 32-bit integer attribute attribute

Results:

  1. output : tensor of any type values

tfl.pseudo_sparse_const (TFL::SparseConstOp)

Sparse constant pseudo op.

Description:

Represents a sparse constant value in TensorFlow Lite dialect. This is not an actual operation and it will be lowered to buffer instead.

Operands:

Attributes:

Attribute MLIR Type Description
value ElementsAttr constant vector/tensor attribute attribute
s_param TFL::SparsityParameterAttr Sparsity parameter. attribute

Results:

  1. output : tensor of any type values

tfl.pseudo_sparse_qconst (TFL::SparseQConstOp)

Sparse quantized constant pseudo op

Description:

Represents a sparse quantized constant value in TensorFlow Lite dialect. This is not an actual operation and it will be lowered to buffer instead. The quantization parameters are stored as a type attribute in this constant.

Operands:

Attributes:

Attribute MLIR Type Description
qtype TypeAttr Tensor type attribute attribute
value ElementsAttr constant vector/tensor attribute attribute
s_param TFL::SparsityParameterAttr Sparsity parameter. attribute

Results:

  1. output : tensor of any type values

tfl.sparse_to_dense (TFL::SparseToDenseOp)

Converts a sparse representation into a dense tensor.

Description:

Builds an array dense with shape output_shape such that

 # If sparse_indices is scalar
dense[i] = (i == sparse_indices ? sparse_values : default_value)

# If sparse_indices is a vector, then for each i
dense[sparse_indices[i]] = sparse_values[i]

# If sparse_indices is an n by d matrix, then for each i in [0, n)
dense[sparse_indices[i][0], ..., sparse_indices[i][d-1]] = sparse_values[i]
 

All other values in dense are set to default_value . If sparse_values is a scalar, all sparse indices are set to this single value.

Indices should be sorted in lexicographic order, and indices must not contain any repeats. If validate_indices is true, these properties are checked during execution.

Operands:

  1. sparse_indices : tensor of any type values
  2. output_shape : tensor of any type values
  3. sparse_values : tensor of any type values
  4. default_value : tensor of any type values

Attributes:

Results:

  1. dense : tensor of any type values

tfl.split (TFL::SplitOp)

Splits a tensor into num_split tensors along one dimension.

Description:

Splits the value tensor along split_dim into a number of sub-tensors with same shape as the original one, except for split_dim . Same as tf.Split.

Operands:

  1. split_dim : tensor of any type values
  2. value : tensor of any type values

Attributes:

Attribute MLIR Type Description
num_splits IntegerAttr positive 32-bit integer attribute attribute

Results:

  1. outputs : tensor of any type values

tfl.split_v (TFL::SplitVOp)

Splits a tensor into num_split tensors along one dimension.

Description:

Splits the value tensor along split_dim into a number of sub-tensors with same shape as the original one, except for split_dim . The grouping of the resultant sub-tensors is decided by size-splits . Same as tf.SplitV.

Operands:

  1. value : tensor of any type values
  2. size_splits : 1D tensor of 32-bit integer values
  3. split_dim : 0D tensor of 32-bit integer values

Attributes:

Attribute MLIR Type Description
num_splits IntegerAttr positive 32-bit integer attribute attribute

Results:

  1. outputs : tensor of any type values

tfl.sqrt (TFL::SqrtOp)

Square root operator

Description:

Computes element-wise Square root of input

Operands:

  1. x : tensor of any type values

Attributes:

Results:

  1. y : tensor of any type values

tfl.square (TFL::SquareOp)

Square operator

Description:

Computes element-wise Square of input

Operands:

  1. x : tensor of any type values

Attributes:

Results:

  1. y : tensor of any type values

tfl.squared_difference (TFL::SquaredDifferenceOp)

Squared difference operator

Description:

Element-wise squared difference operation.

Operands:

  1. lhs : tensor of any type values
  2. rhs : tensor of any type values

Attributes:

Results:

  1. output : tensor of any type values

tfl.squeeze (TFL::SqueezeOp)

Removes dimensions of size 1 from the shape of a tensor.

Description:

Given a tensor input , this operation returns a tensor of the same type with all dimensions of size 1 removed. If you don't want to remove all size 1 dimensions, you can remove specific size 1 dimensions by specifying axis .

For example:

 # 't' is a tensor of shape [1, 2, 1, 3, 1, 1]
shape(squeeze(t)) ==> [2, 3]
 

Or, to remove specific size 1 dimensions:

 # 't' is a tensor of shape [1, 2, 1, 3, 1, 1]
shape(squeeze(t, [2, 4])) ==> [1, 2, 3, 1]
 

Operands:

  1. input : tensor of any type values

Attributes:

Attribute MLIR Type Description
squeeze_dims ArrayAttr 64-bit integer array attribute attribute

Results:

  1. output : tensor of any type values

tfl.strided_slice (TFL::StridedSliceOp)

StridedSlice Op

Description:

Return a strided slice from input .

Operands:

  1. input : tensor of any type values
  2. begin : tensor of any type values
  3. end : tensor of any type values
  4. strides : tensor of any type values

Attributes:

Attribute MLIR Type Description
begin_mask IntegerAttr 32-bit integer attribute attribute
end_mask IntegerAttr 32-bit integer attribute attribute
ellipsis_mask IntegerAttr 32-bit integer attribute attribute
new_axis_mask IntegerAttr 32-bit integer attribute attribute
shrink_axis_mask IntegerAttr 32-bit integer attribute attribute

Results:

  1. output : tensor of any type values

tfl.sub (TFL::SubOp)

Subtraction operator

Description:

Element-wise subtraction operation.

Operands:

  1. lhs : tensor of any type values
  2. rhs : tensor of any type values

Attributes:

Attribute MLIR Type Description
fused_activation_function StringAttr fused activation enum attribute

Results:

  1. output : tensor of any type values

tfl.sum (TFL::SumOp)

Sum operator

Description:

Computes the sum reduction along the specified axes

Operands:

  1. input : tensor of any type values
  2. axes : tensor of any type values

Attributes:

Attribute MLIR Type Description
keep_dims BoolAttr bool attribute attribute

Results:

  1. «unnamed»: tensor of any type values

tfl.tanh (TFL::TanhOp)

Hyperbolic tangent operator

Description:

Computes element-wise Hyperbolic tangent of input

Operands:

  1. x : tensor of any type values

Attributes:

Results:

  1. y : tensor of any type values

tfl.tile (TFL::TileOp)

Tile operator.

Description:

Constructs a tensor by tiling a given tensor.

This operation creates a new tensor by replicating input multiples times. The output tensor's i'th dimension has input.dims(i) * multiples[i] elements, and the values of input are replicated multiples[i] times along the 'i'th dimension. For example, tiling [abcd] by [2] produces [abcdabcd].

Operands:

  1. input : tensor of any type values
  2. multiples : tensor of any type values

Attributes:

Results:

  1. output : tensor of any type values

tfl.topk_v2 (TFL::TopKV2Op)

TopK operator

Description:

Returns the top k largest element along each last dimensional slice of input and the indices of values within the last dimension of the input tensor.

Operands:

  1. input : tensor of any type values
  2. k : tensor of any type values

Attributes:

Results:

  1. values : tensor of any type values
  2. indices : tensor of any type values

tfl.transpose_conv (TFL::TransposeConvOp)

Transpose convolution operator

Description:

Performs transpose convolution operation on input.

Operands:

  1. output_shape : 1D tensor of any type values
  2. weights : tensor of any type values
  3. input : tensor of any type values

Attributes:

Attribute MLIR Type Description
padding StringAttr padding enum attribute
stride_h IntegerAttr 32-bit integer attribute attribute
stride_w IntegerAttr 32-bit integer attribute attribute

Results:

  1. output : tensor of any type values

tfl.transpose (TFL::TransposeOp)

Transpose operator

Description:

Returns the Transpose of x

Operands:

  1. x : tensor of any type values
  2. perm : tensor of any type values

Attributes:

Results:

  1. y : tensor of any type values

tfl.unidirectional_sequence_lstm (TFL::UnidirectionalSequenceLSTMOp)

Unidirectional sequence lstm operator

Description:

A recurrent neural network specified by an LSTM cell. This Op supports unrolling the input along the time or batch dimensions, and implements the following operation for each element in the sequence s = 1...sequence_length: outputs[s] = state = activation(LSTMOp(inputs[s]))

where LSTMOp is LSTM TF Lite Op and the “activation” is the function passed as the “fused_activation_function” argument (if not “NONE”).

Operands:

  1. input : tensor of any type values
  2. input_to_input_weights : tensor of any type values or none type
  3. input_to_forget_weights : tensor of any type values
  4. input_to_cell_weights : tensor of any type values
  5. input_to_output_weights : tensor of any type values
  6. recurrent_to_input_weights : tensor of any type values or none type
  7. recurrent_to_forget_weights : tensor of any type values
  8. recurrent_to_cell_weights : tensor of any type values
  9. recurrent_to_output_weights : tensor of any type values
  10. cell_to_input_weights : tensor of any type values or none type
  11. cell_to_forget_weights : tensor of any type values or none type
  12. cell_to_output_weights : tensor of any type values or none type
  13. input_gate_bias : tensor of any type values or none type
  14. forget_gate_bias : tensor of any type values
  15. cell_bias : tensor of any type values
  16. output_gate_bias : tensor of any type values
  17. projection_weights : tensor of any type values or none type
  18. projection_bias : tensor of any type values or none type
  19. input_activation_state : stateful tensor
  20. input_cell_state : stateful tensor
  21. input_layer_norm_coefficients : tensor of any type values or none type
  22. forget_layer_norm_coefficients : tensor of any type values or none type
  23. cell_layer_norm_coefficients : tensor of any type values or none type
  24. output_layer_norm_coefficients : tensor of any type values or none type

Attributes:

Attribute MLIR Type Description
fused_activation_function StringAttr fused activation enum attribute
cell_clip FloatAttr 32-bit float attribute attribute
proj_clip FloatAttr 32-bit float attribute attribute
time_major BoolAttr bool attribute attribute

Results:

  1. output : tensor of any type values

tfl.unidirectional_sequence_rnn (TFL::UnidirectionalSequenceRNNOp)

Unidirectional sequence rnn operator

Description:

A recurrent neural network specified by an RNN cell. This Op takes in input in a format {batch_size, seq_len, input_size} or {seq_len, batch_size, input_size} if it's time-majored.

It implements the following operation for each element in the sequence s = 1...sequence_length: outputs[s] = state = activation(RNNOp(inputs[s]))

where RNNOp is RNNOp TF Lite Op and the “activation” is the function passed as the “fused_activation_function” argument (if not “NONE”).

Operands:

  1. input : tensor of any type values
  2. input_to_input_weights : tensor of any type values
  3. recurrent_to_input_weights : tensor of any type values
  4. input_gate_bias : tensor of any type values
  5. hidden_state : stateful tensor

Attributes:

Attribute MLIR Type Description
time_major BoolAttr bool attribute attribute
fused_activation_function StringAttr fused activation enum attribute

Results:

  1. output : tensor of any type values

tfl.unique (TFL::UniqueOp)

Unique Op.

Description:

This operation returns a tensor y containing all of the unique elements of x sorted in the same order that they occur in x . This operation also returns a tensor idx the same size as x that contains the index of each value of x in the unique output y . In other words:

Operands:

  1. input : tensor of any type values

Attributes:

Attribute MLIR Type Description
idx_out_type Attribute derived attribute attribute

Results:

  1. output : tensor of any type values
  2. idx : tensor of any type values

tfl.unpack (TFL::UnpackOp)

Unpacks a tensor along a dimension into multiple tensors

Description:

Unpacks a given dimension of a rank- R tensor into num rank- (R-1) tensors.

Unpacks num tensors from value by chipping it along the axis dimension. For example, given a tensor of shape (A, B, C, D) ;

If axis == 0 then the i'th tensor in output is the slice value[i, :, :, :] and each tensor in output will have shape (B, C, D) . (Note that the dimension unpacked along is gone, unlike split ).

If axis == 1 then the i'th tensor in output is the slice value[:, i, :, :] and each tensor in output will have shape (A, C, D) . Etc.

This is the opposite of pack .

Operands:

  1. input : tensor of any type values

Attributes:

Attribute MLIR Type Description
num IntegerAttr 32-bit integer attribute attribute
axis IntegerAttr 32-bit integer attribute attribute

Results:

  1. outputs : tensor of any type values

tfl.where (TFL::WhereOp)

Returns locations of nonzero / true values in a tensor.

Description:

This operation returns the coordinates of true elements in condition . The coordinates are returned in a 2-D tensor where the first dimension (rows) represents the number of true elements, and the second dimension (columns) represents the coordinates of the true elements. Keep in mind, the shape of the output tensor can vary depending on how many true values there are in condition . Indices are output in row-major order.

Operands:

  1. input : tensor of any type values

Attributes:

Results:

  1. index : tensor of any type values

tfl.while (TFL::WhileOp)

While loop

Description:

output = input; while (cond(output)) { output = body(output) }

While loop where all values are passes through arguments with implicit capture.

input: A list of input tensors whose types are T. output: A list of output tensors whose types are T. cond: A region takes 'input' and returns a boolean scalar tensor. body: A region that takes a list of tensors and returns another list of tensors. Both lists have the same types.

Operands:

  1. input : tensor of any type values

Attributes:

Attribute MLIR Type Description
is_stateless BoolAttr bool attribute attribute

Results:

  1. output : tensor of any type values

tfl.yield (TFL::YieldOp)

Yield operation

Description:

The "yield" operation represents a return operation within the conditional and body of structured control flow (eg, while). The operation takes variable number of operands and produces no results. The operand number and types must match the signature of the region that contains the operation.

Operands:

  1. operands : any type

Attributes:

Results:

tfl.zeros_like (TFL::ZerosLikeOp)

ZerosLike operator

Description:

Returns a tensor of zeros with the same shape and type as the input tensor.

Operands:

  1. input : tensor of any type values

Attributes:

Results:

  1. output : tensor of any type values