Cette page a été traduite par l'API Cloud Translation.
Switch to English

Dialecte & # 39; tfl & # 39; définition

Le dialecte TensorFlow Lite.

Ce dialecte correspond aux opérations TensorFlow Lite.

Invariants:

  • Toutes les valeurs sont de type Tensor (en particulier, les scalaires sont représentés à l'aide de tenseurs de dimension nulle);

Définition de l'opération

tfl.abs (TFL :: AbsOp)

Opérateur de valeur absolue

La description:

Étant donné un tenseur x , cette opération retourne un tenseur contenant la valeur absolue de chaque élément de x . Par exemple, si x est un élément d'entrée et y est un élément de sortie, cette opération calcule \ (y = | x | \).

Opérandes:

  1. x : tenseur de toutes valeurs de type

Les attributs:

Résultats:

  1. y : tenseur de toutes valeurs de type

tfl.add_n (TFL :: AddNOp)

opérateur add_n

La description:

Ajoute tous les tenseurs d'entrée élément par élément.

Opérandes:

  1. inputs : tenseur de toutes valeurs de type

Les attributs:

Résultats:

  1. sum : tenseur de toutes valeurs de type

tfl.add (TFL :: AddOp)

Opérateur d'addition

La description:

Opération d'addition par élément.

Opérandes:

  1. lhs : tenseur de toutes valeurs de type
  2. rhs : tenseur de toutes valeurs de type

Les attributs:

Attribut Type MLIR La description
fused_activation_function StringAttr attribut d'énumération d'activation fusionnée

Résultats:

  1. output : tenseur de toutes valeurs de type

tfl.arg_max (TFL :: ArgMaxOp)

Opérateur ArgMax

La description:

Renvoie l'index avec la plus grande valeur sur les dimensions d'un tenseur.

Opérandes:

  1. input : tenseur de toutes valeurs de type
  2. dim : tenseur de toutes valeurs de type

Les attributs:

Attribut Type MLIR La description
output_type Attribute attribut d'attribut dérivé

Résultats:

  1. output : tenseur de toutes valeurs de type

tfl.arg_min (TFL :: ArgMinOp)

Opérateur ArgMin

La description:

Renvoie l'index avec la plus petite valeur sur les dimensions d'un tenseur. "A = [1, 10, 26,9, 2,8, 166,32, 62,3] b = tf.math.argmin (input = a) c = tf.keras.backend.eval (b)

Opérandes:

  1. input : tenseur de toutes valeurs de type
  2. dim : tenseur de toutes valeurs de type

Les attributs:

Attribut Type MLIR La description
output_type Attribute attribut d'attribut dérivé

Résultats:

  1. output : tenseur de toutes valeurs de type

tfl.average_pool_2d (TFL :: AveragePool2DOp)

Opérateur Average_pool_2d

La description:

Effectue une opération de mise en commun moyenne sur l'entrée.

Opérandes:

  1. input : tenseur de toutes valeurs de type

Les attributs:

Attribut Type MLIR La description
filter_height IntegerAttr Attribut d'attribut d'entier 32 bits
filter_width IntegerAttr Attribut d'attribut d'entier 32 bits
padding StringAttr attribut enum padding
stride_h IntegerAttr Attribut d'attribut d'entier 32 bits
stride_w IntegerAttr Attribut d'attribut d'entier 32 bits
fused_activation_function StringAttr attribut d'énumération d'activation fusionnée

Résultats:

  1. output : tenseur de toutes valeurs de type

tfl.basic_lstm (TFL :: BasicLSTMOp)

L'opérateur lstm de base

La description:

Opérateur de cellule LSTM de base.

Opérandes:

  1. data_input : tenseur de toutes valeurs de type
  2. prev_activ_input : tenseur de toutes valeurs de type
  3. weights_input : tenseur de toutes valeurs de type
  4. biases_input : tenseur de toutes valeurs de type
  5. prev_state_input : tenseur de toutes valeurs de type

Les attributs:

Attribut Type MLIR La description
fused_activation_function StringAttr attribut d'énumération d'activation fusionnée
cell_clip FloatAttr Attribut d'attribut flottant 32 bits
proj_clip FloatAttr Attribut d'attribut flottant 32 bits
kernel_type StringAttr lstm kernel type enum case attribut BASIC

Résultats:

  1. activ_output : tenseur 2D de toutes valeurs de type
  2. state_output : tenseur 2D de toutes valeurs de type
  3. concat_temp : tenseur 2D de toutes valeurs de type
  4. activ_temp : tenseur 2D de toutes valeurs de type

tfl.batch_to_space_nd (TFL :: BatchToSpaceNdOp)

Opérateur BatchToSpaceNd

La description:

Cette opération remodèle la dimension "batch" 0 en dimensions d'espace.

Opérandes:

  1. input : tenseur de toutes valeurs de type
  2. block_shape : tenseur de toutes valeurs de type
  3. indices : tenseur de toutes valeurs de type

Les attributs:

Résultats:

  1. output : tenseur de toutes valeurs de type

tfl.cast (TFL :: CastOp)

Opérateur de casting

La description:

Convertit l'entrée du type d'entrée au type de sortie.

Opérandes:

  1. input : tenseur de toutes valeurs de type

Les attributs:

Résultats:

  1. output : tenseur de toutes valeurs de type

tfl.ceil (TFL :: CeilOp)

Opérateur Ceil

La description:

Renvoie la valeur ceil élément par élément de l'entrée.

Opérandes:

  1. x : tenseur de toutes valeurs de type

Les attributs:

Résultats:

  1. y : tenseur de toutes valeurs de type

tfl.concatenation (TFL :: ConcatenationOp)

Opérateur de concaténation

La description:

Concatène les tenseurs le long d'une dimension

Opérandes:

  1. values : tenseur de tout type valeurs

Les attributs:

Attribut Type MLIR La description
axis IntegerAttr Attribut d'attribut d'entier 32 bits
fused_activation_function StringAttr attribut d'énumération d'activation fusionnée

Résultats:

  1. output : tenseur de toutes valeurs de type

tfl.pseudo_const (TFL :: ConstOp)

Pseudo op constant.

La description:

Représente une valeur constante dans le dialecte TensorFlow Lite. Ce n'est pas une opération réelle et elle sera réduite en mémoire tampon à la place.

L'op est autorisé à avoir le même type d'attributs que tf.Const (par exemple, les attributs TF opaques sont autorisés).

Opérandes:

Les attributs:

Attribut Type MLIR La description
value ElementsAttr attribut d'attribut vecteur / tenseur constant

Résultats:

  1. output : tenseur de toutes valeurs de type

tfl.conv_2d (TFL :: Conv2DOp)

Opérateur de convolution

La description:

Effectue une opération de convolution sur les entrées.

Entrées: inputs[0] : requises: les entrées du tenseur d'activation des inputs[1] : requises: les inputs[2] tenseur de poids du filtre inputs[2] : optionnelles: le tenseur de polarisation

Opérandes:

  1. input : tenseur de toutes valeurs de type
  2. filter : tenseur de toutes valeurs de type
  3. bias : tenseur de toute valeur de type ou aucun type

Les attributs:

Attribut Type MLIR La description
dilation_h_factor IntegerAttr Attribut d'attribut d'entier 32 bits
dilation_w_factor IntegerAttr Attribut d'attribut d'entier 32 bits
fused_activation_function StringAttr attribut d'énumération d'activation fusionnée
padding StringAttr attribut enum padding
stride_h IntegerAttr Attribut d'attribut d'entier 32 bits
stride_w IntegerAttr Attribut d'attribut d'entier 32 bits

Résultats:

  1. output : tenseur de toutes valeurs de type

tfl.convolution_2d_transpose_bias (TFL :: Convolution2DTransposeBiasOp)

Transposer la convolution avec l'opérateur de polarisation

La description:

Effectue une opération de transposition de convolution sur les entrées, avec la possibilité d'ajouter un biais. Notez qu'il s'agit d'une opération personnalisée qui n'est pas prise en charge dans l'environnement d'exécution standard.

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

Opérandes:

  1. input : tenseur de toutes valeurs de type
  2. filter : tenseur de toutes valeurs de type
  3. bias : tenseur de toute valeur de type ou aucun type

Les attributs:

Attribut Type MLIR La description
padding StringAttr attribut enum padding
stride_h IntegerAttr Attribut d'attribut d'entier 32 bits
stride_w IntegerAttr Attribut d'attribut d'entier 32 bits

Résultats:

  1. output : tenseur de toutes valeurs de type

tfl.cos (TFL :: CosOp)

Opérateur cosinus

La description:

Calcule le cosinus élément par élément de l'entrée

Opérandes:

  1. x : tenseur de toutes valeurs de type

Les attributs:

Résultats:

  1. y : tenseur de toutes valeurs de type

tfl.densify (TFL :: DensifyOp)

Opérateur de densification

La description:

Convertit le tenseur clairsemé en format dense.

Opérandes:

  1. input : tenseur de toutes valeurs de type

Les attributs:

Résultats:

  1. output : tenseur de toutes valeurs de type

tfl.depth_to_space (TFL :: DepthToSpaceOp)

Opérateur DepthToSpace

La description:

Réorganise les données de la profondeur en blocs de données spatiales. C'est la transformation inverse de SpaceToDepth. Plus spécifiquement, cette opération produit une copie du tenseur d'entrée où les valeurs de la dimension de depth sont déplacées dans des blocs spatiaux vers les dimensions de height et de width . L'attr block_size indique la taille du bloc d'entrée et la manière dont les données sont déplacées.

Opérandes:

  1. input : tenseur de toutes valeurs de type

Les attributs:

Attribut Type MLIR La description
block_size IntegerAttr Attribut d'attribut d'entier 32 bits

Résultats:

  1. output : tenseur de toutes valeurs de type

tfl.depthwise_conv_2d (TFL :: DepthwiseConv2DOp)

Opérateur de convolution séparable en profondeur

La description:

Effectue une opération de convolution sur les entrées.

Entrées: inputs[0] : obligatoire: le tenseur d'activation d'entrée inputs[1] : obligatoire: le tenseur de poids du filtre inputs[2] : optionnel: le tenseur de polarisation

Opérandes:

  1. input : tenseur de toutes valeurs de type
  2. filter : tenseur de toutes valeurs de type
  3. bias : tenseur de toute valeur de type ou aucun type

Les attributs:

Attribut Type MLIR La description
dilation_h_factor IntegerAttr Attribut d'attribut d'entier 32 bits
dilation_w_factor IntegerAttr Attribut d'attribut d'entier 32 bits
fused_activation_function StringAttr attribut d'énumération d'activation fusionnée
padding StringAttr attribut enum padding
stride_h IntegerAttr Attribut d'attribut d'entier 32 bits
stride_w IntegerAttr Attribut d'attribut d'entier 32 bits
depth_multiplier IntegerAttr Attribut d'attribut d'entier 32 bits

Résultats:

  1. output : tenseur de toutes valeurs de type

tfl.dequantize (TFL :: DequantizeOp)

Opérateur de déquantification

La description:

Convertit un tableau quantifié d'entiers en virgules flottantes en fonction des paramètres de quantification.

Opérandes:

  1. input : tenseur de toutes valeurs de type

Les attributs:

Résultats:

  1. output : tenseur de toutes valeurs de type

tfl.div (TFL :: DivOp)

Opérateur de division

La description:

Opération de division par élément.

Opérandes:

  1. lhs : tenseur de toutes valeurs de type
  2. rhs : tenseur de toutes valeurs de type

Les attributs:

Attribut Type MLIR La description
fused_activation_function StringAttr attribut d'énumération d'activation fusionnée

Résultats:

  1. output : tenseur de toutes valeurs de type

tfl.elu (TFL :: EluOp)

Opérateur d'unité linéaire exponentielle

La description:

Calcule le linéaire exponentiel f (x) -> exp (x) - 1 pour x <0, x pour x> = 0. élément par élément.

Opérandes:

  1. x : tenseur de toutes valeurs de type

Les attributs:

Résultats:

  1. y : tenseur de toutes valeurs de type

tfl.embedding_lookup (TFL :: EmbeddingLookupOp)

Opérateur de recherche d'incorporation

La description:

Recherche les identifiants dans une liste de tenseurs d'intégration.

Opérandes:

  1. lookup : tenseur de toutes valeurs de type
  2. value : tenseur de toute valeur de type

Les attributs:

Résultats:

  1. output : tenseur de toutes valeurs de type

tfl.equal (TFL :: EqualOp)

Opérateur égal

La description:

Renvoie l'élément de vérité de x == y élément par élément

Opérandes:

  1. x : tenseur de toutes valeurs de type
  2. y : tenseur de toutes valeurs de type

Les attributs:

Résultats:

  1. output : tenseur de toutes valeurs de type

tfl.exp (TFL :: ExpOp)

Opérateur d'exponentiation naturelle

La description:

Effectue une opération d'exponentiation naturelle élément par élément sur l'entrée.

Opérandes:

  1. x : tenseur de toutes valeurs de type

Les attributs:

Résultats:

  1. y : tenseur de toutes valeurs de type

tfl.expand_dims (TFL :: ExpandDimsOp)

Insère une dimension de 1 dans la forme d'un tenseur.

La description:

Étant donné une input tensorielle, cette opération insère une dimension de 1 sur l' axis index de dimension de la forme de l' input . L' axis index de dimension commence à zéro; si vous spécifiez un nombre négatif pour l' axis il est compté à rebours à partir de la fin.

Cette opération est utile si vous souhaitez ajouter une dimension de lot à un seul élément. Par exemple, si vous avez une seule image de forme [height, width, channels] , vous pouvez en faire un lot de 1 image avec expand_dims(image, 0) , ce qui donnera la forme [1, height, width, channels] .

Autres exemples:

 # '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]
 

Cette opération nécessite que:

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

Cette opération est liée à squeeze() , qui supprime les dimensions de taille 1.

Opérandes:

  1. input : tenseur de toutes valeurs de type
  2. dim : tenseur de tout type entier

Les attributs:

Résultats:

  1. output : tenseur de toutes valeurs de type

tfl.external_const (TFL :: ExternalConstOp)

Const op externe.

La description:

La const op externe contient un buffer_index qui pointe vers une constante dans le flatbuffer.

Opérandes:

Les attributs:

Attribut Type MLIR La description
buffer_index IntegerAttr Attribut d'attribut d'entier 32 bits

Résultats:

  1. output : tenseur de toutes valeurs de type

tfl.fake_quant (TFL :: FakeQuantOp)

Opérateur FakeQuant

La description:

Faux-quantifier le tenseur «entrées» de type float via les scalaires flottants min et max en tenseur «sorties» de même forme que les entrées.

Opérandes:

  1. input : tenseur de toutes valeurs de type

Les attributs:

Attribut Type MLIR La description
min FloatAttr Attribut d'attribut flottant 32 bits
max FloatAttr Attribut d'attribut flottant 32 bits
num_bits IntegerAttr Attribut d'attribut d'entier 32 bits
narrow_range BoolAttr attribut d'attribut booléen

Résultats:

  1. output : tenseur de toutes valeurs de type

tfl.fill (TFL :: FillOp)

Remplissez le tenseur avec une valeur donnée.

La description:

Remplissez le tenseur avec une valeur donnée.

Opérandes:

  1. dims : tenseur de toutes valeurs de type
  2. value : tenseur de toute valeur de type

Les attributs:

Résultats:

  1. res : tenseur de toutes valeurs de type

tfl.floor_div (TFL :: FloorDivOp)

Opérateur de division d'étage

La description:

Opération de division de plancher par élément.

Opérandes:

  1. lhs : tenseur de toutes valeurs de type
  2. rhs : tenseur de toutes valeurs de type

Les attributs:

Résultats:

  1. output : tenseur de toutes valeurs de type

tfl.floor_mod (TFL :: FloorModOp)

Rappel de division

La description:

Opération de rappel de division par élément.

Opérandes:

  1. lhs : tenseur de toutes valeurs de type
  2. rhs : tenseur de toutes valeurs de type

Les attributs:

Résultats:

  1. output : tenseur de toutes valeurs de type

tfl.floor (TFL :: FloorOp)

Opérateur d'étage

La description:

Renvoie la valeur plancher par élément de l'entrée.

Opérandes:

  1. x : tenseur de toutes valeurs de type

Les attributs:

Résultats:

  1. y : tenseur de toutes valeurs de type

tfl.fully_connected (TFL :: FullyConnectedOp)

Op entièrement connecté

La description:

Opérandes:

  1. input : tenseur de toutes valeurs de type
  2. filter : tenseur de toutes valeurs de type
  3. bias : tenseur de toute valeur de type ou aucun type

Les attributs:

Attribut Type MLIR La description
fused_activation_function StringAttr attribut d'énumération d'activation fusionnée
weights_format StringAttr attribut de format de poids d'options entièrement connecté
keep_num_dims BoolAttr attribut d'attribut booléen

Résultats:

  1. output : tenseur de toutes valeurs de type

tfl.gather_nd (TFL :: GatherNdOp)

Opérateur Gather_nd

La description:

Rassemblez des tranches de params dans un Tensor avec une forme spécifiée par des indices .

Opérandes:

  1. params : tenseur de toutes valeurs de type
  2. indices : tenseur de toutes valeurs de type

Les attributs:

Résultats:

  1. output : tenseur de toutes valeurs de type

tfl.gather (TFL :: GatherOp)

Gather opérateur

La description:

Rassemblez les tranches de l'axe de l' axis des params fonction des indices .

Opérandes:

  1. params : tenseur de toutes valeurs de type
  2. indices : tenseur de toutes valeurs de type

Les attributs:

Attribut Type MLIR La description
axis IntegerAttr Attribut d'attribut d'entier 32 bits

Résultats:

  1. output : tenseur de toutes valeurs de type

tfl.greater_equal (TFL :: GreaterEqualOp)

Opérateur Greater_equal

La description:

Opération Greater_equal par élément.

Opérandes:

  1. lhs : tenseur de toutes valeurs de type
  2. rhs : tenseur de toutes valeurs de type

Les attributs:

Résultats:

  1. output : tenseur de toutes valeurs de type

tfl.greater (TFL :: GreaterOp)

Grand opérateur

La description:

Fonctionnement supérieur par élément.

Opérandes:

  1. lhs : tenseur de toutes valeurs de type
  2. rhs : tenseur de toutes valeurs de type

Les attributs:

Résultats:

  1. output : tenseur de toutes valeurs de type

tfl.hard_swish (TFL :: HardSwishOp)

Fonction d'activation Hardswish.

La description:

Calcule la fonction d'activation hard-swish f (x) -> (x * relu6 (x + 3)) / 6 élément par élément.

Opérandes:

  1. input : tenseur de toutes valeurs de type

Les attributs:

Résultats:

  1. out : tenseur de toutes valeurs de type

tfl.l2_normalization (TFL :: L2NormalizationOp)

Opérateur de normalisation L2

La description:

Opération de normalisation L2

Opérandes:

  1. input : tenseur de toutes valeurs de type

Les attributs:

Attribut Type MLIR La description
fused_activation_function StringAttr attribut d'énumération d'activation fusionnée

Résultats:

  1. output : tenseur de toutes valeurs de type

tfl.lstm (TFL :: LSTMOp)

L'opérateur LSTM complet

La description:

Couche réseau récurrente LSTM (Long Short-Term Memory Unit). L'implémentation non-judas par défaut est basée sur: http://deeplearning.cs.cmu.edu/pdfs/Hochreiter97_lstm.pdf S. Hochreiter et J. Schmidhuber. "Mémoire à long terme à court terme". Neural Computation, 9 (8): 1735-1780, 1997. L'implémentation du judas est basée sur: https://research.google.com/pubs/archive/43905.pdf Hasim Sak, Andrew Senior et Françoise Beaufays. "Architectures de réseaux de neurones récurrents à mémoire à court terme pour la modélisation acoustique à grande échelle. INTERSPEECH, 2014. Le couplage de l'entrée et de la porte oublié (CIFG) est basé sur: http://arxiv.org/pdf/1503.04069.pdf Greff et al . "LSTM: A Search Space Odyssey" La normalisation des couches est basée sur: https://arxiv.org/pdf/1607.06450.pdf Ba et al. "Normalisation des couches"

Opérandes:

  1. input : tenseur de toutes valeurs de type
  2. input_to_input_weights : tenseur de toute valeur de type ou aucun type
  3. input_to_forget_weights : tenseur de toutes valeurs de type
  4. input_to_cell_weights : tenseur de toutes valeurs de type
  5. input_to_output_weights : tenseur de toutes valeurs de type
  6. recurrent_to_input_weights : tenseur de toute valeur de type ou aucun type
  7. recurrent_to_forget_weights : tenseur de toutes valeurs de type
  8. recurrent_to_cell_weights : tenseur de toutes valeurs de type
  9. recurrent_to_output_weights : tenseur de toutes valeurs de type
  10. cell_to_input_weights : tenseur de toute valeur de type ou aucun type
  11. cell_to_forget_weights : tenseur de toute valeur de type ou aucun type
  12. cell_to_output_weights : tenseur de toute valeur de type ou aucun type
  13. input_gate_bias : tenseur de toute valeur de type ou aucun type
  14. forget_gate_bias : tenseur de toutes valeurs de type
  15. cell_bias : tenseur de toutes valeurs de type
  16. output_gate_bias : tenseur de toutes valeurs de type
  17. projection_weights : tenseur de toute valeur de type ou aucun type
  18. projection_bias : tenseur de toute valeur de type ou aucun type
  19. input_activation_state : tenseur avec état
  20. input_cell_state : tenseur avec état
  21. input_layer_norm_coefficients : tenseur de toute valeur de type ou aucun type
  22. forget_layer_norm_coefficients : tenseur de toute valeur de type ou aucun type
  23. cell_layer_norm_coefficients : tenseur de toute valeur de type ou aucun type
  24. output_layer_norm_coefficients : tenseur de toute valeur de type ou aucun type

Les attributs:

Attribut Type MLIR La description
fused_activation_function StringAttr attribut d'énumération d'activation fusionnée
cell_clip FloatAttr Attribut d'attribut flottant 32 bits
proj_clip FloatAttr Attribut d'attribut flottant 32 bits
kernel_type StringAttr lstm kernel type enum case attribut FULL

Résultats:

  1. output : tenseur de toutes valeurs de type

tfl.leaky_relu (TFL :: LeakyReluOp)

Opérateur Leaky Relu

La description:

Opérateur Leaky ReLU élément par élément x -> x> = 0? x: (alpha * x)

Opérandes:

  1. input : tenseur de toutes valeurs de type

Les attributs:

Attribut Type MLIR La description
alpha FloatAttr Attribut d'attribut flottant 32 bits

Résultats:

  1. output : tenseur de toutes valeurs de type

tfl.less_equal (TFL :: LessEqualOp)

Opérateur Less_equal

La description:

Opération less_equal par élément.

Opérandes:

  1. lhs : tenseur de toutes valeurs de type
  2. rhs : tenseur de toutes valeurs de type

Les attributs:

Résultats:

  1. output : tenseur de toutes valeurs de type

tfl.less (TFL :: LessOp)

Moins d'opérateur

La description:

Moins d'opération par élément.

Opérandes:

  1. lhs : tenseur de toutes valeurs de type
  2. rhs : tenseur de toutes valeurs de type

Les attributs:

Résultats:

  1. output : tenseur de toutes valeurs de type

tfl.local_response_normalization (TFL :: LocalResponseNormalizationOp)

Normalisation de la réponse locale.

La description:

Le tenseur d' input 4-D est traité comme un tableau 3-D de vecteurs 1-D (le long de la dernière dimension), et chaque vecteur est normalisé indépendamment. Dans un vecteur donné, chaque composante est divisée par la somme quadratique pondérée des entrées dans depth_radius . En détail,

 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
 

Pour plus de détails, voir Krizhevsky et al., ImageNet classification with deep convolutional neural networks (NIPS 2012) .

Opérandes:

  1. input : tenseur de toutes valeurs de type

Les attributs:

Attribut Type MLIR La description
radius IntegerAttr Attribut d'attribut d'entier 32 bits
bias FloatAttr Attribut d'attribut flottant 32 bits
alpha FloatAttr Attribut d'attribut flottant 32 bits
beta FloatAttr Attribut d'attribut flottant 32 bits

Résultats:

  1. output : tenseur de toutes valeurs de type

tfl.log (TFL :: LogOp)

Opérateur de logarithme naturel

La description:

Effectue une opération de logarithme naturel élément par élément sur l'entrée.

Opérandes:

  1. x : tenseur de toutes valeurs de type

Les attributs:

Résultats:

  1. y : tenseur de toutes valeurs de type

tfl.log_softmax (TFL :: LogSoftmaxOp)

Loger l'opérateur softmax

La description:

Calcule les activations softmax log par élément avec la formule suivante

input - log (reduction_sum (exp (entrée), dim))

Opérandes:

  1. input : tenseur de toutes valeurs de type

Les attributs:

Résultats:

  1. output : tenseur de toutes valeurs de type

tfl.logical_and (TFL :: LogicalAndOp)

Opérateur ET logique

La description:

Opération ET logique par élément.

Opérandes:

  1. lhs : tenseur de toutes valeurs de type
  2. rhs : tenseur de toutes valeurs de type

Les attributs:

Résultats:

  1. output : tenseur de toutes valeurs de type

tfl.logical_not (TFL :: LogicalNotOp)

Opérateur NOT logique

La description:

Opération NON logique par élément.

Opérandes:

  1. lhs : tenseur de toutes valeurs de type

Les attributs:

Résultats:

  1. output : tenseur de toutes valeurs de type

tfl.logical_or (TFL :: LogicalOrOp)

Opérateur OR logique

La description:

Opération OR logique par élément.

Opérandes:

  1. lhs : tenseur de toutes valeurs de type
  2. rhs : tenseur de toutes valeurs de type

Les attributs:

Résultats:

  1. output : tenseur de toutes valeurs de type

tfl.logistic (TFL :: LogisticOp)

Opérateur logistique

La description:

Calcule le sigmoïde par élément de l'entrée

Opérandes:

  1. x : tenseur de toutes valeurs de type

Les attributs:

Résultats:

  1. y : tenseur de toutes valeurs de type

tfl.matrix_diag (TFL :: MatrixDiagOp)

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

La description:

Étant donné une diagonale, renvoie un tenseur avec la diagonale et tout le reste rempli de zéros. Supposons que la diagonale a k dimensions [I, J, K, ..., N] , alors la sortie est un tenseur de rang k+1 de dimensions [I, J, K, ..., N, N] où: output[i, j, k, ..., m, n] = 1{m=n} * diagonal[i, j, k, ..., n].

Opérandes:

  1. diagonal : tenseur de toutes valeurs de type

Les attributs:

Résultats:

  1. output : tenseur de toutes valeurs de type

tfl.matrix_set_diag (TFL :: MatrixSetDiagOp)

 Returns a batched matrix tensor with new batched diagonal values.
 

La description:

Étant donné l' input et la diagonal , cette opération renvoie un tenseur avec la même forme et les mêmes valeurs que l' input , sauf pour la diagonale principale des matrices les plus internes. Celles-ci seront écrasées par les valeurs en diagonal .

Opérandes:

  1. input : tenseur de 32 bits flottant ou entier 32 bits ou entier 64 bits ou entier 8 bits ou de type QI8 ou de type QI16 ou de type QUI8 ou de type TFLite uint8 ou de type TFLite quint8
  2. diagonal : tenseur de 32 bits flottant ou entier 32 bits ou entier 64 bits ou entier 8 bits ou de type QI8 ou de type QI16 ou de type QUI8 ou de type TFLite uint8 ou de type TFLite quint8

Les attributs:

Résultats:

  1. output : tenseur de 32 bits flottant ou entier 32 bits ou entier 64 bits ou entier 8 bits ou de type QI8 ou de type QI16 ou de type QUI8 ou de type TFLite uint8 ou de type TFLite quint8

tfl.max_pool_2d (TFL :: MaxPool2DOp)

Max Pool 2D op

La description:

Exécute max pool 2D en entrée.

Entrées: inputs[0] : obligatoire: le tenseur d'entrée

Opérandes:

  1. input : tenseur de toutes valeurs de type

Les attributs:

Attribut Type MLIR La description
padding StringAttr attribut enum padding
stride_w IntegerAttr Attribut d'attribut d'entier 32 bits
stride_h IntegerAttr Attribut d'attribut d'entier 32 bits
filter_width IntegerAttr Attribut d'attribut d'entier 32 bits
filter_height IntegerAttr Attribut d'attribut d'entier 32 bits
fused_activation_function StringAttr attribut d'énumération d'activation fusionnée

Résultats:

  1. output : tenseur de toutes valeurs de type

tfl.max_ Covoiturage_with_argmax_2d (TFL :: MaxPoolingWithArgMax2DOp)

Max Pool 2D avec argmax op

La description:

Effectue une mise en commun maximale sur l'entrée et génère à la fois des valeurs maximales et des indices. Chaque index est un index aplati dans un sous-tableau de taille "filter_w" x "filter_h". Notez qu'il s'agit d'une opération personnalisée qui n'est pas prise en charge dans le runtime standard.

Entrées: inputs[0] : obligatoire: le tenseur d'activation d'entrée

Opérandes:

  1. input : tenseur de toutes valeurs de type

Les attributs:

Attribut Type MLIR La description
padding StringAttr attribut enum padding
stride_w IntegerAttr Attribut d'attribut d'entier 32 bits
stride_h IntegerAttr Attribut d'attribut d'entier 32 bits
filter_w IntegerAttr Attribut d'attribut d'entier 32 bits
filter_h IntegerAttr Attribut d'attribut d'entier 32 bits

Résultats:

  1. value : tenseur de toute valeur de type
  2. indices : tenseur de toutes valeurs de type

tfl.max_unpool_2d (TFL :: MaxUnpool2DOp)

Max Unpool 2D

La description:

Effectue l'opération de dégroupage maximum. Dans une certaine mesure, il s'agit de l'opération inverse du pooling max: les éléments du tenseur d'activation d'entrée sont stockés dans la position spécifiée par les indices d'entrée. Notez qu'il s'agit d'une opération personnalisée qui n'est pas prise en charge dans l'environnement d'exécution standard.

Entrées: inputs[0] : obligatoire: les entrées du tenseur d'activation d' inputs[1] : obligatoire: les indices d'entrée

Opérandes:

  1. input : tenseur de toutes valeurs de type
  2. indices : tenseur de toutes valeurs de type

Les attributs:

Attribut Type MLIR La description
padding StringAttr attribut enum padding
stride_w IntegerAttr Attribut d'attribut d'entier 32 bits
stride_h IntegerAttr Attribut d'attribut d'entier 32 bits
filter_w IntegerAttr Attribut d'attribut d'entier 32 bits
filter_h IntegerAttr Attribut d'attribut d'entier 32 bits

Résultats:

  1. outputs : tenseur de toutes valeurs de type

tfl.maximum (TFL :: MaximumOp)

Opérateur Max

La description:

Fonctionnement maximum par élément.

Opérandes:

  1. lhs : tenseur de toutes valeurs de type
  2. rhs : tenseur de toutes valeurs de type

Les attributs:

Résultats:

  1. max : tenseur de toutes valeurs de type

tfl.mean (TFL :: MeanOp)

Opérateur moyen

La description:

Calcule la moyenne des éléments sur les dimensions d'un tenseur. Réduit input_tensor le long des dimensions données dans l'axe. Sauf si keepdims est vrai, le rang du tenseur est réduit de 1 pour chaque entrée dans l'axe. Si keepdims est vrai, les dimensions réduites sont conservées avec la longueur 1.

Opérandes:

  1. input : tenseur de toutes valeurs de type
  2. axis : tenseur de toutes valeurs de type

Les attributs:

Attribut Type MLIR La description
keep_dims BoolAttr attribut d'attribut booléen

Résultats:

  1. output : tenseur de toutes valeurs de type

tfl.minimum (TFL :: MinimumOp)

Opérateur min

La description:

Fonctionnement minimum par élément.

Opérandes:

  1. lhs : tenseur de toutes valeurs de type
  2. rhs : tenseur de toutes valeurs de type

Les attributs:

Résultats:

  1. min : tenseur de toutes valeurs de type

tfl.mirror_pad (TFL :: MirrorPadOp)

Opérateur MirrorPad. Remplit un tenseur avec des valeurs en miroir.

La description:

Cette opération complète une entrée avec des valeurs en miroir en fonction des remplissages que vous spécifiez. paddings est un tenseur entier de forme [n, 2], où n est le rang de l'entrée. Pour chaque dimension D d'entrée, les paddings [D, 0] indiquent le nombre de valeurs à ajouter avant le contenu de l'entrée dans cette dimension, et les paddings [D, 1] indiquent le nombre de valeurs à ajouter après le contenu de l'entrée dans cette dimension.

Les bourrages [D, 0] et les bourrages [D, 1] ne doivent pas être supérieurs à input.dim_size (D) (ou input.dim_size (D) - 1) si copy_border est vrai (si faux, respectivement).

La taille rembourrée de chaque dimension D de la sortie est:

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

Opérandes:

  1. input : tenseur de toutes valeurs de type
  2. pad : tenseur de toutes valeurs de type

Les attributs:

Attribut Type MLIR La description
mode StringAttr Attribut Mirror pad enum

Résultats:

  1. output : tenseur de toutes valeurs de type

tfl.mul (TFL :: MulOp)

Opérateur de multiplication

La description:

Opération de multiplication par élément.

Opérandes:

  1. lhs : tenseur de toutes valeurs de type
  2. rhs : tenseur de toutes valeurs de type

Les attributs:

Attribut Type MLIR La description
fused_activation_function StringAttr attribut d'énumération d'activation fusionnée

Résultats:

  1. output : tenseur de toutes valeurs de type

tfl.neg (TFL :: NegOp)

Opérateur de négation

La description:

Calcule la négation élémentaire de l'entrée

Opérandes:

  1. x : tenseur de toutes valeurs de type

Les attributs:

Résultats:

  1. y : tenseur de toutes valeurs de type

tfl.non_max_suppression_v4 (TFL :: NonMaxSuppressionV4Op)

Sélectionne avec gourmandise un sous-ensemble de boîtes englobantes par ordre décroissant de score,

La description:

élaguer les boîtes qui ont un fort chevauchement d'intersection sur union (IOU) avec les boîtes précédemment sélectionnées. Les encadrés avec un score inférieur à score_threshold sont supprimés. Les boîtes englobantes sont fournies sous la forme [y1, x1, y2, x2], où (y1, x1) et (y2, x2) sont les coordonnées de toute paire diagonale de coins de boîte et les coordonnées peuvent être fournies comme normalisées (c.-à-d. l'intervalle [0, 1]) ou absolu. Notez que cet algorithme est indépendant de l'endroit où l'origine est dans le système de coordonnées et plus généralement est invariant aux transformations orthogonales et aux traductions du système de coordonnées; ainsi, la traduction ou les réflexions du système de coordonnées aboutissent à la sélection des mêmes cases par l'algorithme. La sortie de cette opération est un ensemble d'entiers indexés dans la collection d'entrée de boîtes englobantes représentant les boîtes sélectionnées. Les coordonnées de la boîte englobante correspondant aux indices sélectionnés peuvent alors être obtenues en utilisant l' tf.gather operation . Par exemple: selected_indices = tf.image.non_max_suppression_v2 (boxes, scores, max_output_size, iou_threshold, score_threshold) selected_boxes = tf.gather (boxes, selected_indices)

Opérandes:

  1. boxes : tenseur de toutes valeurs de type
  2. scores : tenseur de toutes valeurs de type
  3. max_output_size : tenseur de toutes valeurs de type
  4. iou_threshold : tenseur de toutes valeurs de type
  5. score_threshold : tenseur de toutes valeurs de type

Les attributs:

Résultats:

  1. selected_indices : tenseur de toutes valeurs de type
  2. valid_outputs : tenseur de toutes valeurs de type

tfl.non_max_suppression_v5 (TFL :: NonMaxSuppressionV5Op)

Sélectionne avec gourmandise un sous-ensemble de boîtes englobantes par ordre décroissant de score,

La description:

élaguer les boîtes qui ont un fort chevauchement d'intersection sur union (IOU) avec les boîtes précédemment sélectionnées. Les encadrés avec un score inférieur à score_threshold sont supprimés. Les boîtes englobantes sont fournies sous la forme [y1, x1, y2, x2], où (y1, x1) et (y2, x2) sont les coordonnées de toute paire diagonale de coins de boîte et les coordonnées peuvent être fournies comme normalisées (c.-à-d. l'intervalle [0, 1]) ou absolu. Notez que cet algorithme est indépendant de l'endroit où se trouve l'origine dans le système de coordonnées et plus généralement qu'il est invariant aux transformations orthogonales et aux traductions du système de coordonnées; ainsi, la traduction ou les réflexions du système de coordonnées aboutissent à la sélection des mêmes cases par l'algorithme. La sortie de cette opération est un ensemble d'entiers indexés dans la collection d'entrée de boîtes englobantes représentant les boîtes sélectionnées. Les coordonnées de la boîte englobante correspondant aux indices sélectionnés peuvent alors être obtenues en utilisant l' 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