O Dia da Comunidade de ML é dia 9 de novembro! Junte-nos para atualização de TensorFlow, JAX, e mais Saiba mais

Definição de dialeto 'tfl'

O dialeto TensorFlow Lite.

Este dialeto mapeia para operações do TensorFlow Lite.

Invariantes:

  • Todos os valores são do tipo Tensor (em particular, os escalares são representados usando tensores de dimensão zero);

Definição de operação

tfl.abs (TFL :: AbsOp)

Operador de valor absoluto

Descrição:

Dado um tensor x , esta operação retorna um tensor contendo o valor absoluto de cada elemento em x . Por exemplo, se x é um elemento de entrada e y é um elemento de saída, esta operação calcula \(y = |x|\).

Operandos:

  1. x : tensor de quaisquer valores de tipo

Atributos:

Resultados:

  1. y : tensor de quaisquer valores de tipo

tfl.add_n (TFL :: AddNOp)

operador add_n

Descrição:

Adiciona todos os tensores de entrada elemento a elemento.

Operandos:

  1. inputs : tensor de quaisquer valores de tipo

Atributos:

Resultados:

  1. sum : tensor de quaisquer valores de tipo

tfl.add (TFL :: AddOp)

Operador de adição

Descrição:

Operação de adição a nível de elemento.

Operandos:

  1. lhs : tensor de quaisquer valores de tipo
  2. rhs : tensor de quaisquer valores de tipo

Atributos:

Atributo Tipo MLIR Descrição
fused_activation_function StringAttr atributo de enum de ativação fundida

Resultados:

  1. output : tensor de quaisquer valores de tipo

tfl.arg_max (TFL :: ArgMaxOp)

Operador ArgMax

Descrição:

Retorna o índice com o maior valor nas dimensões de um tensor.

Operandos:

  1. input : tensor de quaisquer valores de tipo
  2. dim : tensor de quaisquer valores de tipo

Atributos:

Atributo Tipo MLIR Descrição
output_type Attribute atributo de atributo derivado

Resultados:

  1. output : tensor de quaisquer valores de tipo

tfl.arg_min (TFL :: ArgMinOp)

Operador ArgMin

Descrição:

Retorna o índice com o menor valor entre as dimensões de um tensor. "A = [1, 10, 26,9, 2,8, 166,32, 62,3] b = tf.math.argmin (input = a) c = tf.keras.backend.eval (b)

Operandos:

  1. input : tensor de quaisquer valores de tipo
  2. dim : tensor de quaisquer valores de tipo

Atributos:

Atributo Tipo MLIR Descrição
output_type Attribute atributo de atributo derivado

Resultados:

  1. output : tensor de quaisquer valores de tipo

tfl.average_pool_2d (TFL :: AveragePool2DOp)

Operador Average_pool_2d

Descrição:

Executa a operação de pooling médio na entrada.

Operandos:

  1. input : tensor de quaisquer valores de tipo

Atributos:

Atributo Tipo MLIR Descrição
filter_height IntegerAttr Atributo de atributo inteiro de 32 bits
filter_width IntegerAttr Atributo de atributo inteiro de 32 bits
padding StringAttr atributo de enum de preenchimento
stride_h IntegerAttr Atributo de atributo inteiro de 32 bits
stride_w IntegerAttr Atributo de atributo inteiro de 32 bits
fused_activation_function StringAttr atributo de enum de ativação fundida

Resultados:

  1. output : tensor de quaisquer valores de tipo

tfl.basic_lstm (TFL :: BasicLSTMOp)

O operador lstm básico

Descrição:

Operador de célula LSTM básico.

Operandos:

  1. data_input : tensor de quaisquer valores de tipo
  2. prev_activ_input : tensor de quaisquer valores de tipo
  3. weights_input : tensor de quaisquer valores de tipo
  4. biases_input : tensor de quaisquer valores de tipo
  5. prev_state_input : tensor de quaisquer valores de tipo

Atributos:

Atributo Tipo MLIR Descrição
fused_activation_function StringAttr atributo de enum de ativação fundida
cell_clip FloatAttr Atributo de atributo float de 32 bits
proj_clip FloatAttr Atributo de atributo float de 32 bits
kernel_type StringAttr lstm tipo de kernel enum case atributo BASIC

Resultados:

  1. activ_output : 2D tensor de quaisquer valores de tipo
  2. state_output tensor 2D de quaisquer valores de tipo:
  3. concat_temp tensor 2D de quaisquer valores de tipo:
  4. activ_temp : 2D tensor de quaisquer valores de tipo

tfl.batch_to_space_nd (TFL :: BatchToSpaceNdOp)

Operador BatchToSpaceNd

Descrição:

Esta operação remodela a dimensão do "lote" 0 em dimensões espaciais.

Operandos:

  1. input : tensor de quaisquer valores de tipo
  2. block_shape : tensor de quaisquer valores de tipo
  3. indices : tensor de quaisquer valores de tipo

Atributos:

Resultados:

  1. output : tensor de quaisquer valores de tipo

tfl.cast (TFL :: CastOp)

Operador de elenco

Descrição:

Converte a entrada do tipo de entrada para o tipo de saída.

Operandos:

  1. input : tensor de quaisquer valores de tipo

Atributos:

Resultados:

  1. output : tensor de quaisquer valores de tipo

tfl.ceil (TFL :: CeilOp)

Operador de teto

Descrição:

Retorna o valor de teto elementar da entrada.

Operandos:

  1. x : tensor de quaisquer valores de tipo

Atributos:

Resultados:

  1. y : tensor de quaisquer valores de tipo

tfl.concatenation (TFL :: ConcatenationOp)

Operador de concatenação

Descrição:

Concatena tensores ao longo de uma dimensão

Operandos:

  1. values : tensor de quaisquer valores de tipo

Atributos:

Atributo Tipo MLIR Descrição
axis IntegerAttr Atributo de atributo inteiro de 32 bits
fused_activation_function StringAttr atributo de enum de ativação fundida

Resultados:

  1. output : tensor de quaisquer valores de tipo

tfl.pseudo_const (TFL :: ConstOp)

Constant pseudo op.

Descrição:

Representa um valor constante no dialeto do TensorFlow Lite. Esta não é uma operação real e, em vez disso, será reduzida para o buffer.

O op pode ter todos os mesmos tipos de atributos que tf.Const (por exemplo, atributos opacos do TF são permitidos).

Operandos:

Atributos:

Atributo Tipo MLIR Descrição
value ElementsAttr atributo de vetor / tensor constante

Resultados:

  1. output : tensor de quaisquer valores de tipo

tfl.conv_2d (TFL :: Conv2DOp)

Operador de convolução

Descrição:

Executa a operação de convolução nas entradas.

Entradas: inputs[0] : necessária: a activação de entrada tensor inputs[1] : necessário: o peso do filtro tensor inputs[2] : opcional: o tensor de polarização

Operandos:

  1. input : tensor de quaisquer valores de tipo
  2. filter : tensor de quaisquer valores de tipo
  3. bias : tensor de quaisquer valores de tipo ou de tipo nenhum

Atributos:

Atributo Tipo MLIR Descrição
dilation_h_factor IntegerAttr Atributo de atributo inteiro de 32 bits
dilation_w_factor IntegerAttr Atributo de atributo inteiro de 32 bits
fused_activation_function StringAttr atributo de enum de ativação fundida
padding StringAttr atributo de enum de preenchimento
stride_h IntegerAttr Atributo de atributo inteiro de 32 bits
stride_w IntegerAttr Atributo de atributo inteiro de 32 bits

Resultados:

  1. output : tensor de quaisquer valores de tipo

tfl.convolution_2d_transpose_bias (TFL :: Convolution2DTransposeBiasOp)

Transpor convolução com operador de polarização

Descrição:

Executa a operação de transposição de convolução nas entradas, com a opção de adicionar um bias. Observe que esta é uma operação personalizada que não é compatível com o tempo de execução padrão.

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

Operandos:

  1. input : tensor de quaisquer valores de tipo
  2. filter : tensor de quaisquer valores de tipo
  3. bias : tensor de quaisquer valores de tipo ou de tipo nenhum

Atributos:

Atributo Tipo MLIR Descrição
padding StringAttr atributo de enum de preenchimento
stride_h IntegerAttr Atributo de atributo inteiro de 32 bits
stride_w IntegerAttr Atributo de atributo inteiro de 32 bits

Resultados:

  1. output : tensor de quaisquer valores de tipo

tfl.cos (TFL :: CosOp)

Operador cosseno

Descrição:

Calcula o cosseno de entrada por elemento

Operandos:

  1. x : tensor de quaisquer valores de tipo

Atributos:

Resultados:

  1. y : tensor de quaisquer valores de tipo

tfl.densify (TFL :: DensifyOp)

Operador Densificar

Descrição:

Converte o tensor esparso em formato denso.

Operandos:

  1. input : tensor de quaisquer valores de tipo

Atributos:

Resultados:

  1. output : tensor de quaisquer valores de tipo

tfl.depth_to_space (TFL :: DepthToSpaceOp)

Operador DepthToSpace

Descrição:

Reorganiza dados de profundidade em blocos de dados espaciais. Esta é a transformação reversa de SpaceToDepth. Mais especificamente, esta op produz uma cópia do tensor de entrada, onde os valores da depth dimensão são movidos em blocos espaciais para a height e width dimensões. O attr block_size indica o tamanho do bloco de entrada e de como os dados são movidos.

Operandos:

  1. input : tensor de quaisquer valores de tipo

Atributos:

Atributo Tipo MLIR Descrição
block_size IntegerAttr Atributo de atributo inteiro de 32 bits

Resultados:

  1. output : tensor de quaisquer valores de tipo

tfl.depthwise_conv_2d (TFL :: DepthwiseConv2DOp)

Operador de convolução separável em profundidade

Descrição:

Executa a operação de convolução nas entradas.

Entradas: inputs[0] : necessária: a activação de entrada tensor inputs[1] : necessário: o peso do filtro tensor inputs[2] : opcional: o tensor de polarização

Operandos:

  1. input : tensor de quaisquer valores de tipo
  2. filter : tensor de quaisquer valores de tipo
  3. bias : tensor de quaisquer valores de tipo ou de tipo nenhum

Atributos:

Atributo Tipo MLIR Descrição
dilation_h_factor IntegerAttr Atributo de atributo inteiro de 32 bits
dilation_w_factor IntegerAttr Atributo de atributo inteiro de 32 bits
fused_activation_function StringAttr atributo de enum de ativação fundida
padding StringAttr atributo de enum de preenchimento
stride_h IntegerAttr Atributo de atributo inteiro de 32 bits
stride_w IntegerAttr Atributo de atributo inteiro de 32 bits
depth_multiplier IntegerAttr Atributo de atributo inteiro de 32 bits

Resultados:

  1. output : tensor de quaisquer valores de tipo

tfl.dequantize (TFL :: DequantizeOp)

Operador de desquantização

Descrição:

Converte a matriz quantizada de inteiros em pontos flutuantes de acordo com os parâmetros de quantização.

Operandos:

  1. input : tensor de quaisquer valores de tipo

Atributos:

Resultados:

  1. output : tensor de quaisquer valores de tipo

tfl.div (TFL :: DivOp)

Operador de divisão

Descrição:

Operação de divisão por elemento.

Operandos:

  1. lhs : tensor de quaisquer valores de tipo
  2. rhs : tensor de quaisquer valores de tipo

Atributos:

Atributo Tipo MLIR Descrição
fused_activation_function StringAttr atributo de enum de ativação fundida

Resultados:

  1. output : tensor de quaisquer valores de tipo

tfl.elu (TFL :: EluOp)

Operador de unidade linear exponencial

Descrição:

Calcula o exponencial linear f (x) -> exp (x) - 1 para x <0, x para x> = 0. elemento a elemento.

Operandos:

  1. x : tensor de quaisquer valores de tipo

Atributos:

Resultados:

  1. y : tensor de quaisquer valores de tipo

tfl.embedding_lookup (TFL :: EmbeddingLookupOp)

Operador de incorporação de pesquisa

Descrição:

Procura ids em uma lista de tensores de incorporação.

Operandos:

  1. lookup : tensor de quaisquer valores de tipo
  2. value : tensor de quaisquer valores de tipo

Atributos:

Resultados:

  1. output : tensor de quaisquer valores de tipo

tfl.equal (TFL :: EqualOp)

Operador igual

Descrição:

Retorna o elemento verdade de x == y elemento a elemento

Operandos:

  1. x : tensor de quaisquer valores de tipo
  2. y : tensor de quaisquer valores de tipo

Atributos:

Resultados:

  1. output : tensor de quaisquer valores de tipo

tfl.exp (TFL :: ExpOp)

Operador de exponenciação natural

Descrição:

Executa a operação de exponenciação natural de elementos na entrada.

Operandos:

  1. x : tensor de quaisquer valores de tipo

Atributos:

Resultados:

  1. y : tensor de quaisquer valores de tipo

tfl.expand_dims (TFL :: ExpandDimsOp)

Insere uma dimensão de 1 na forma de um tensor.

Descrição:

Dado um tensor input , esta operação insere uma dimensão de 1, no índice da dimensão axis de input da forma. O índice da dimensão axis começa em zero; se você especificar um número negativo para axis é contado para trás a partir do final.

Esta operação é útil se você deseja adicionar uma dimensão de lote a um único elemento. Por exemplo, se tiver uma única imagem da forma [height, width, channels] , pode fazer-se um lote de imagem 1 com expand_dims(image, 0) , que fará com que a forma [1, height, width, channels] .

Outros exemplos:

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

Esta operação requer que:

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

Esta operação está relacionada com a squeeze() , que remove as dimensões de tamanho 1.

Operandos:

  1. input : tensor de quaisquer valores de tipo
  2. dim : tensor de qualquer tipo inteiro

Atributos:

Resultados:

  1. output : tensor de quaisquer valores de tipo

tfl.external_const (TFL :: ExternalConstOp)

Op const externo.

Descrição:

Const op externo detém uma buffer_index que aponta para uma constante na flatbuffer.

Operandos:

Atributos:

Atributo Tipo MLIR Descrição
buffer_index IntegerAttr Atributo de atributo inteiro de 32 bits

Resultados:

  1. output : tensor de quaisquer valores de tipo

tfl.fake_quant (TFL :: FakeQuantOp)

Operador FakeQuant

Descrição:

Fake-quantize o tensor de 'entradas' do tipo float por meio de escalares de float mínimo e máximo para tensor de 'saídas' da mesma forma que as entradas.

Operandos:

  1. input : tensor de quaisquer valores de tipo

Atributos:

Atributo Tipo MLIR Descrição
min FloatAttr Atributo de atributo float de 32 bits
max FloatAttr Atributo de atributo float de 32 bits
num_bits IntegerAttr Atributo de atributo inteiro de 32 bits
narrow_range BoolAttr atributo bool attribute

Resultados:

  1. output : tensor de quaisquer valores de tipo

tfl.fill (TFL :: FillOp)

Preencha o tensor com o valor fornecido.

Descrição:

Preencha o tensor com o valor fornecido.

Operandos:

  1. dims : tensor de quaisquer valores de tipo
  2. value : tensor de quaisquer valores de tipo

Atributos:

Resultados:

  1. res : tensor de quaisquer valores de tipo

tfl.floor_div (TFL :: FloorDivOp)

Operador div de andar

Descrição:

Operação div de piso elementar.

Operandos:

  1. lhs : tensor de quaisquer valores de tipo
  2. rhs : tensor de quaisquer valores de tipo

Atributos:

Resultados:

  1. output : tensor de quaisquer valores de tipo

tfl.floor_mod (TFL :: FloorModOp)

Lembrete de divisão

Descrição:

Operação de lembrete de divisão por elemento.

Operandos:

  1. lhs : tensor de quaisquer valores de tipo
  2. rhs : tensor de quaisquer valores de tipo

Atributos:

Resultados:

  1. output : tensor de quaisquer valores de tipo

tfl.floor (TFL :: FloorOp)

Operador de piso

Descrição:

Retorna o valor mínimo elementar da entrada.

Operandos:

  1. x : tensor de quaisquer valores de tipo

Atributos:

Resultados:

  1. y : tensor de quaisquer valores de tipo

tfl.fully_connected (TFL :: FullyConnectedOp)

Operação totalmente conectada

Descrição:

Operandos:

  1. input : tensor de quaisquer valores de tipo
  2. filter : tensor de quaisquer valores de tipo
  3. bias : tensor de quaisquer valores de tipo ou de tipo nenhum

Atributos:

Atributo Tipo MLIR Descrição
fused_activation_function StringAttr atributo de enum de ativação fundida
weights_format StringAttr atributo de formato de pesos de opções totalmente conectado
keep_num_dims BoolAttr atributo bool attribute

Resultados:

  1. output : tensor de quaisquer valores de tipo

tfl.gather_nd (TFL :: GatherNdOp)

Operador Gather_nd

Descrição:

Reunir fatias de params para um tensor com a forma especificada pela indices .

Operandos:

  1. params : tensor de quaisquer valores de tipo
  2. indices : tensor de quaisquer valores de tipo

Atributos:

Resultados:

  1. output : tensor de quaisquer valores de tipo

tfl.gather (TFL :: GatherOp)

Operador de coleta

Descrição:

Reunir as fatias a partir de params de eixo axis de acordo com indices .

Operandos:

  1. params : tensor de quaisquer valores de tipo
  2. indices : tensor de quaisquer valores de tipo

Atributos:

Atributo Tipo MLIR Descrição
axis IntegerAttr Atributo de atributo inteiro de 32 bits

Resultados:

  1. output : tensor de quaisquer valores de tipo

tfl.greater_equal (TFL :: GreaterEqualOp)

Operador Greater_equal

Descrição:

Operação maior_equal elemento a elemento.

Operandos:

  1. lhs : tensor de quaisquer valores de tipo
  2. rhs : tensor de quaisquer valores de tipo

Atributos:

Resultados:

  1. output : tensor de quaisquer valores de tipo

tfl.greater (TFL :: GreaterOp)

Maior operadora

Descrição:

Maior operação em termos de elementos.

Operandos:

  1. lhs : tensor de quaisquer valores de tipo
  2. rhs : tensor de quaisquer valores de tipo

Atributos:

Resultados:

  1. output : tensor de quaisquer valores de tipo

tfl.hard_swish (TFL :: HardSwishOp)

Função de ativação Hardswish.

Descrição:

Calcula a função de ativação hard-swish f (x) -> (x * relu6 (x + 3)) / 6 elemento a elemento.

Operandos:

  1. input : tensor de quaisquer valores de tipo

Atributos:

Resultados:

  1. out : tensor de qualquer tipo de valores

tfl.l2_normalization (TFL :: L2NormalizationOp)

Operador de normalização L2

Descrição:

L2Normalização Op

Operandos:

  1. input : tensor de quaisquer valores de tipo

Atributos:

Atributo Tipo MLIR Descrição
fused_activation_function StringAttr atributo de enum de ativação fundida

Resultados:

  1. output : tensor de quaisquer valores de tipo

tfl.lstm (TFL :: LSTMOp)

O operador lstm completo

Descrição:

Camada de rede recorrente de unidade de memória de curto prazo longa (LSTM). A implementação padrão sem visor é baseada em: http://deeplearning.cs.cmu.edu/pdfs/Hochreiter97_lstm.pdf S. Hochreiter e J. Schmidhuber. "Memória longa de curto prazo". Neural Computation, 9 (8): 1735-1780, 1997. A implementação do olho mágico é baseada em: https://research.google.com/pubs/archive/43905.pdf Hasim Sak, Andrew Senior e Françoise Beaufays. "Arquiteturas de redes neurais recorrentes de memória de longo prazo para modelagem acústica em larga escala. INTERSPEECH, 2014. O acoplamento de entrada e esquecimento (CIFG) é baseado em: http://arxiv.org/pdf/1503.04069.pdf Greff et al . "LSTM: A Search Space Odyssey" A normalização da camada é baseada em: https://arxiv.org/pdf/1607.06450.pdf Ba et al. “Normalização da camada”

Operandos:

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

Atributos:

Atributo Tipo MLIR Descrição
fused_activation_function StringAttr atributo de enum de ativação fundida
cell_clip FloatAttr Atributo de atributo float de 32 bits
proj_clip FloatAttr Atributo de atributo float de 32 bits
kernel_type StringAttr lstm tipo de kernel enum case atributo FULL

Resultados:

  1. output : tensor de quaisquer valores de tipo

tfl.leaky_relu (TFL :: LeakyReluOp)

Operador Leaky Relu

Descrição:

Operador Leaky ReLU elemento a elemento x -> x> = 0? x: (alfa * x)

Operandos:

  1. input : tensor de quaisquer valores de tipo

Atributos:

Atributo Tipo MLIR Descrição
alpha FloatAttr Atributo de atributo float de 32 bits

Resultados:

  1. output : tensor de quaisquer valores de tipo

tfl.less_equal (TFL :: LessEqualOp)

Operador Less_equal

Descrição:

Operação less_equal em termos de elemento.

Operandos:

  1. lhs : tensor de quaisquer valores de tipo
  2. rhs : tensor de quaisquer valores de tipo

Atributos:

Resultados:

  1. output : tensor de quaisquer valores de tipo

tfl.less (TFL :: LessOp)

Menos operador

Descrição:

Operação menos elementar.

Operandos:

  1. lhs : tensor de quaisquer valores de tipo
  2. rhs : tensor de quaisquer valores de tipo

Atributos:

Resultados:

  1. output : tensor de quaisquer valores de tipo

tfl.local_response_normalization (TFL :: LocalResponseNormalizationOp)

Normalização de resposta local.

Descrição:

O 4-D input tensor é tratada como uma matriz de 3-D de vectores 1-D (ao longo da última dimensão), e cada vector é normalizado de maneira independente. Dentro de um dado vector, cada componente é dividido pela soma ponderada, quadrado de entradas dentro depth_radius . Em detalhe,

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

Para mais detalhes, consulte Krizhevsky et al., IMAGEnet classificação com redes neurais convolucionais profundas (PIN 2012) .

Operandos:

  1. input : tensor de quaisquer valores de tipo

Atributos:

Atributo Tipo MLIR Descrição
radius IntegerAttr Atributo de atributo inteiro de 32 bits
bias FloatAttr Atributo de atributo float de 32 bits
alpha FloatAttr Atributo de atributo float de 32 bits
beta FloatAttr Atributo de atributo float de 32 bits

Resultados:

  1. output : tensor de quaisquer valores de tipo

tfl.log (TFL :: LogOp)

Operador de logaritmo natural

Descrição:

Executa a operação de logaritmo natural a nível de elemento na entrada.

Operandos:

  1. x : tensor de quaisquer valores de tipo

Atributos:

Resultados:

  1. y : tensor de quaisquer valores de tipo

tfl.log_softmax (TFL :: LogSoftmaxOp)

Operador log softmax

Descrição:

Calcula ativações de softmax de log de elemento a elemento com a seguinte fórmula

entrada - log (reduz_sum (exp (entrada), dim))

Operandos:

  1. input : tensor de quaisquer valores de tipo

Atributos:

Resultados:

  1. output : tensor de quaisquer valores de tipo

tfl.logical_and (TFL :: LogicalAndOp)

Operador lógico AND

Descrição:

Operação E lógica elemento a elemento.

Operandos:

  1. lhs : tensor de quaisquer valores de tipo
  2. rhs : tensor de quaisquer valores de tipo

Atributos:

Resultados:

  1. output : tensor de quaisquer valores de tipo

tfl.logical_not (TFL :: LogicalNotOp)

Operador lógico NOT

Descrição:

Operação NÃO lógica a nível de elemento.

Operandos:

  1. lhs : tensor de quaisquer valores de tipo

Atributos:

Resultados:

  1. output : tensor de quaisquer valores de tipo

tfl.logical_or (TFL :: LogicalOrOp)

Operador lógico OR

Descrição:

Operação OR lógica por elemento.

Operandos:

  1. lhs : tensor de quaisquer valores de tipo
  2. rhs : tensor de quaisquer valores de tipo

Atributos:

Resultados:

  1. output : tensor de quaisquer valores de tipo

tfl.logistic (TFL :: LogisticOp)

Operador logístico

Descrição:

Calcula o sigmóide elementar de entrada

Operandos:

  1. x : tensor de quaisquer valores de tipo

Atributos:

Resultados:

  1. y : tensor de quaisquer valores de tipo

tfl.matrix_diag (TFL :: MatrixDiagOp)

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

Descrição:

Dada uma diagonal, retorna um tensor com a diagonal e todo o resto preenchido com zeros. Suponha diagonal tem dimensões de k [I, J, K, ..., N] , então a saída é um tensor de categoria k+1 com dimensões [I, J, K, ..., N, N] , onde: output[i, j, k, ..., m, n] = 1{m=n} * diagonal[i, j, k, ..., n].

Operandos:

  1. diagonal : tensor de quaisquer valores de tipo

Atributos:

Resultados:

  1. output : tensor de quaisquer valores de tipo

tfl.matrix_set_diag (TFL :: MatrixSetDiagOp)

Returns a batched matrix tensor with new batched diagonal values.

Descrição:

Dada input e diagonal , esta operação retorna um tensor com a mesma forma e os valores de input , excepto para a diagonal principal das matrizes mais profundos. Estes serão sobrescritos pelos valores da diagonal .

Operandos:

  1. input : tensor de flutuador 32 bits ou de 32 bits número inteiro ou um número inteiro de 64-bit ou um número inteiro de 8 bits ou tipo QI8 ou tipo QI16 ou tipo QUI8 ou TFLite tipo uint8 ou TFLite quint8 valores de tipo
  2. diagonal : tensor de flutuador 32 bits ou de 32 bits número inteiro ou um número inteiro de 64-bit ou um número inteiro de 8 bits ou tipo QI8 ou tipo QI16 ou tipo QUI8 ou TFLite uint8 tipo ou TFLite quint8 valores de tipo

Atributos:

Resultados:

  1. output : tensor de flutuador 32 bits ou de 32 bits número inteiro ou um número inteiro de 64-bit ou um número inteiro de 8 bits ou tipo QI8 ou tipo QI16 ou tipo QUI8 ou TFLite tipo uint8 ou TFLite quint8 valores de tipo

tfl.max_pool_2d (TFL :: MaxPool2DOp)

Max Pool 2D op

Descrição:

Executa o pool máximo 2D na entrada.

Entradas: inputs[0] : necessário: o tensor de entrada

Operandos:

  1. input : tensor de quaisquer valores de tipo

Atributos:

Atributo Tipo MLIR Descrição
padding StringAttr atributo de enum de preenchimento
stride_w IntegerAttr Atributo de atributo inteiro de 32 bits
stride_h IntegerAttr Atributo de atributo inteiro de 32 bits
filter_width IntegerAttr Atributo de atributo inteiro de 32 bits
filter_height IntegerAttr Atributo de atributo inteiro de 32 bits
fused_activation_function StringAttr atributo de enum de ativação fundida

Resultados:

  1. output : tensor de quaisquer valores de tipo

tfl.max_pooling_with_argmax_2d (TFL :: MaxPoolingWithArgMax2DOp)

Max Pool 2D com argmax op

Descrição:

Executa o pooling máximo na entrada e emite tanto os valores máximos quanto os índices. Cada índice é um índice achatado em uma submatriz de tamanho "filter_w" x "filter_h". Observe que esta é uma operação personalizada que não é compatível com o tempo de execução padrão.

Entradas: inputs[0] : necessário: o tensor de activação de entrada

Operandos:

  1. input : tensor de quaisquer valores de tipo

Atributos:

Atributo Tipo MLIR Descrição
padding StringAttr atributo de enum de preenchimento
stride_w IntegerAttr Atributo de atributo inteiro de 32 bits
stride_h IntegerAttr Atributo de atributo inteiro de 32 bits
filter_w IntegerAttr Atributo de atributo inteiro de 32 bits
filter_h IntegerAttr Atributo de atributo inteiro de 32 bits

Resultados:

  1. value : tensor de quaisquer valores de tipo
  2. indices : tensor de quaisquer valores de tipo

tfl.max_unpooling_2d (TFL :: MaxUnpooling2DOp)

Max Unpool 2D

Descrição:

Executa a operação de unpool máximo. Até certo ponto, esta é a operação reversa do pooling máximo: os elementos no tensor de ativação de entrada são armazenados na posição especificada pelos índices de entrada. Observe que esta é uma operação personalizada que não é compatível com o tempo de execução padrão.

Entradas: inputs[0] : requeridas: a activação de entrada tensor inputs[1] : necessária: os índices de entrada

Operandos:

  1. input : tensor de quaisquer valores de tipo
  2. indices : tensor de quaisquer valores de tipo

Atributos:

Atributo Tipo MLIR Descrição
padding StringAttr atributo de enum de preenchimento
stride_w IntegerAttr Atributo de atributo inteiro de 32 bits
stride_h IntegerAttr Atributo de atributo inteiro de 32 bits
filter_w IntegerAttr Atributo de atributo inteiro de 32 bits
filter_h IntegerAttr Atributo de atributo inteiro de 32 bits

Resultados:

  1. outputs : tensor de quaisquer valores de tipo

tfl.maximum (TFL :: MaximumOp)

Operador máximo

Descrição:

Operação máxima por elemento.

Operandos:

  1. lhs : tensor de quaisquer valores de tipo
  2. rhs : tensor de quaisquer valores de tipo

Atributos:

Resultados:

  1. max : tensor de quaisquer valores de tipo

tfl.mean (TFL :: MeanOp)

Operador médio

Descrição:

Calcula a média dos elementos nas dimensões de um tensor. Reduz input_tensor ao longo das dimensões fornecidas no eixo. A menos que keepdims seja true, a classificação do tensor é reduzida em 1 para cada entrada no eixo. Se keepdims for true, as dimensões reduzidas são retidas com comprimento 1.

Operandos:

  1. input : tensor de quaisquer valores de tipo
  2. axis : tensor de quaisquer valores de tipo

Atributos:

Atributo Tipo MLIR Descrição
keep_dims BoolAttr atributo bool attribute

Resultados:

  1. output : tensor de quaisquer valores de tipo

tfl.minimum (TFL :: MinimumOp)

Operador mínimo

Descrição:

Operação mínima a elemento.

Operandos:

  1. lhs : tensor de quaisquer valores de tipo
  2. rhs : tensor de quaisquer valores de tipo

Atributos:

Resultados:

  1. min : tensor de quaisquer valores de tipo

tfl.mirror_pad (TFL :: MirrorPadOp)

Operador MirrorPad. Preenche um tensor com valores espelhados.

Descrição:

Esta operação preenche uma entrada com valores espelhados de acordo com os preenchimentos que você especificar. paddings é um tensor inteiro com forma [n, 2], onde n é a classificação de entrada. Para cada dimensão D de entrada, preenchimentos [D, 0] indicam quantos valores adicionar antes do conteúdo de entrada nessa dimensão, e preenchimentos [D, 1] indica quantos valores adicionar após o conteúdo de entrada nessa dimensão.

Ambos os preenchimentos [D, 0] e os preenchimentos [D, 1] não devem ser maiores que input.dim_size (D) (ou input.dim_size (D) - 1) se copy_border for true (se false, respectivamente).

O tamanho preenchido de cada dimensão D da saída é:

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

Operandos:

  1. input : tensor de quaisquer valores de tipo
  2. pad : tensor de qualquer tipo de valores

Atributos:

Atributo Tipo MLIR Descrição
mode StringAttr Atributo de enum do Mirror pad

Resultados:

  1. output : tensor de quaisquer valores de tipo

tfl.mul (TFL :: MulOp)

Operador de multiplicação

Descrição:

Operação de multiplicação elemento a elemento.

Operandos:

  1. lhs : tensor de quaisquer valores de tipo
  2. rhs : tensor de quaisquer valores de tipo

Atributos:

Atributo Tipo MLIR Descrição
fused_activation_function StringAttr atributo de enum de ativação fundida

Resultados:

  1. output : tensor de quaisquer valores de tipo

tfl.neg (TFL :: NegOp)

Operador de negação

Descrição:

Calcula a negação elemento-sábio da entrada

Operandos:

  1. x : tensor de quaisquer valores de tipo

Atributos:

Resultados:

  1. y : tensor de quaisquer valores de tipo

tfl.non_max_suppression_v4 (TFL :: NonMaxSuppressionV4Op)

Avidamente seleciona um subconjunto de caixas delimitadoras em ordem decrescente de pontuação,

Descrição:

podar as caixas que têm alta sobreposição de intersecção sobre união (IOU) com as caixas previamente selecionadas. Caixas delimitadoras com pontuação inferior a score_threshold são removidos. As caixas delimitadoras são fornecidas como [y1, x1, y2, x2], onde (y1, x1) e (y2, x2) são as coordenadas de qualquer par diagonal de cantos da caixa e as coordenadas podem ser fornecidas como normalizadas (ou seja, situadas em o intervalo [0, 1]) ou absoluto. Observe que este algoritmo é agnóstico em relação a onde a origem está no sistema de coordenadas e, mais geralmente, é invariante para transformações ortogonais e traduções do sistema de coordenadas; assim, a tradução ou reflexos do sistema de coordenadas resulta nas mesmas caixas sendo selecionadas pelo algoritmo. A saída desta operação é um conjunto de indexação de inteiros na coleção de entrada de caixas delimitadoras que representam as caixas selecionadas. As coordenadas das laterais da caixa correspondentes aos índices seleccionados podem então ser obtidas usando a tf.gather operation . Por exemplo: selected_indices = tf.image.non_max_suppression_v2 (caixas, pontuações, max_output_size, iou_threshold, score_threshold) selected_boxes = tf.gather (caixas, selected_indices)

Operandos:

  1. boxes : tensor de quaisquer valores de tipo
  2. scores : tensor de qualquer tipo de valores
  3. max_output_size : tensor de quaisquer valores de tipo
  4. iou_threshold : tensor de quaisquer valores de tipo
  5. score_threshold : tensor de quaisquer valores de tipo

Atributos:

Resultados:

  1. selected_indices : tensor de quaisquer valores de tipo
  2. valid_outputs : tensor de quaisquer valores de tipo

tfl.non_max_suppression_v5 (TFL :: NonMaxSuppressionV5Op)

Avidamente seleciona um subconjunto de caixas delimitadoras em ordem decrescente de pontuação,

Descrição:

podar as caixas que têm alta sobreposição de intersecção sobre união (IOU) com as caixas previamente selecionadas. Caixas delimitadoras com pontuação inferior a score_threshold são removidos. As caixas delimitadoras são fornecidas como [y1, x1, y2, x2], onde (y1, x1) e (y2, x2) são as coordenadas de qualquer par diagonal de cantos da caixa e as coordenadas podem ser fornecidas como normalizadas (ou seja, situadas em o intervalo [0, 1]) ou absoluto. Observe que este algoritmo é agnóstico em relação a onde a origem está no sistema de coordenadas e, mais geralmente, é invariante para transformações ortogonais e traduções do sistema de coordenadas; assim, a tradução ou reflexos do sistema de coordenadas resulta nas mesmas caixas sendo selecionadas pelo algoritmo. A saída dessa operação é um conjunto de números inteiros indexados na coleção de entrada de caixas delimitadoras que representam as caixas selecionadas. As coordenadas das laterais da caixa correspondentes aos índices seleccionados podem então ser obtidas usando a tf.gather operation . Por exemplo: selected_indices = tf.image.non_max_suppression_v2 (caixas, pontuações, max_output_size, iou_threshold, score_threshold) selected_boxes = tf.gather (boxes, selected_indices) Este op também suporta um modo Soft-NMS (com ponderação gaussiana) (cf Bodla et al , https://arxiv.org/abs/1704.04503) em que as caixas reduzem a pontuação de outras caixas sobrepostas, em vez de causar diretamente a poda delas. Para ativar esse modo de Soft-NMS, defina o soft_nms_sigma parâmetro para ser maior do que 0.

Operandos:

  1. boxes : tensor de quaisquer valores de tipo
  2. scores : tensor de qualquer tipo de valores
  3. max_output_size : tensor de quaisquer valores de tipo
  4. iou_threshold : tensor de quaisquer valores de tipo
  5. score_threshold : tensor de quaisquer valores de tipo
  6. soft_nms_sigma : tensor de quaisquer valores de tipo

Atributos:

Resultados:

  1. selected_indices : tensor de quaisquer valores de tipo
  2. selected_scores : tensor de quaisquer valores de tipo
  3. valid_outputs : tensor de quaisquer valores de tipo

tfl.not_equal (TFL :: NotEqualOp)

Operador Not_equal

Descrição:

Operação not_equal em termos de elemento.

Operandos:

  1. lhs : tensor de quaisquer valores de tipo
  2. rhs : tensor de quaisquer valores de tipo

Atributos:

Resultados:

  1. output : tensor de quaisquer valores de tipo

tfl.NumericVerify (TFL :: NumericVerifyOp)

Verifica os números dos dois operandos

Descrição:

O op NumericVerify é um op de depuração para verificar os números das duas ativações. É uma operação personalizada no TFLite.

Operandos:

  1. input : tensor de quaisquer valores de tipo
  2. ref : tensor de qualquer tipo de valores

Atributos:

Atributo Tipo MLIR Descrição
tolerance FloatAttr Atributo de atributo float de 32 bits

Resultados:

tfl.one_hot (TFL :: OneHotOp)

Operador OneHot

Descrição:

Retorna um one-quente locais tensor.The representadas por índices em indices ter valor on_value , enquanto todos os outros locais levá valor off_value .

Se a entrada de indices é posto N , a saída terá posto N+1 , o novo eixo é criado na dimensão axis (padrão: o novo eixo é anexado no final).

Operandos:

  1. indices : tensor de quaisquer valores de tipo
  2. depth : tensor de qualquer tipo de valores
  3. on_value : tensor de quaisquer valores de tipo
  4. off_value : tensor de quaisquer valores de tipo

Atributos:

Atributo Tipo MLIR Descrição
axis IntegerAttr Atributo de atributo inteiro de 32 bits

Resultados:

  1. output : tensor de quaisquer valores de tipo

tfl.prelu (TFL :: PReluOp)

Operador Relu parametrizado

Descrição:

Operador Relu parametrizado x -> x> = 0? x: (alfa * x) onde alfa é um tensor treinável. alfa deve ter uma classificação a menos que a entrada, pois não tem a dimensão de lote, e as outras dimensões devem ser do mesmo tamanho que a entrada ou tamanho 1, onde é transmitido no segundo caso.

Operandos:

  1. input : tensor de quaisquer valores de tipo
  2. alpha : tensor de quaisquer valores de tipo

Atributos:

Resultados:

  1. output : tensor de quaisquer valores de tipo

tfl.pack (TFL :: PackOp)

Empacota uma lista de tensores ao longo de uma dimensão em um tensor

Descrição:

Pacotes de uma lista de values_count rank R tensores para um rank (R+1) tensor.

Embala os values_count tensores em values em um tensor com grau um maior do que cada tensor em values , embalando-os ao longo do axis dimensão.

Dada uma lista de tensores de forma (A, B, C) ;

Se axis == 0 , em seguida, a output tensor terá a forma (N, A, B, C) . Se axis == 1 , em seguida, a output tensor terá a forma (A, N, B, C) . Etc.

Por exemplo:

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

Isto é o oposto de unpack .

Operandos:

  1. values : tensor de quaisquer valores de tipo

Atributos:

Atributo Tipo MLIR Descrição
values_count IntegerAttr Atributo de atributo inteiro de 32 bits
axis IntegerAttr Atributo de atributo inteiro de 32 bits

Resultados:

  1. output : tensor de quaisquer valores de tipo

tfl.pad (TFL :: PadOp)

Operador de enchimento

Descrição:

Esta operação preenche uma input com zeros de acordo com as paddings você especificar. paddings é um número inteiro com tensor de forma [Dn, 2] , em que n é o grau de input . Para cada dimensão D de input , paddings[D, 0] indica o número de zeros para adicionar antes de o conteúdo de input em que a dimensão, e paddings[D, 1] indica o número de zeros para adicionar depois os conteúdos de input em que a dimensão.

O tamanho preenchido de cada dimensão D da saída é:

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

Por exemplo:

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

Operandos:

  1. input : tensor de quaisquer valores de tipo
  2. padding : tensor de quaisquer valores de tipo

Atributos:

Resultados:

  1. output : tensor de quaisquer valores de tipo

tfl.padv2 (TFL :: PadV2Op)

Operador de enchimento v2

Descrição:

Esta operação preenche uma input de acordo com as paddings e constant_values você especificar. paddings é um número inteiro com tensor de forma [Dn, 2] , em que n é o grau de input . Para cada dimensão D de input , paddings[D, 0] indica o número de zeros para adicionar antes de o conteúdo de input em que a dimensão, e paddings[D, 1] indica o número de zeros para adicionar depois os conteúdos de input em que a dimensão. constant_values é um tensor escalar do mesmo tipo como input que indica o valor para uso em preenchimento input .

O tamanho preenchido de cada dimensão D da saída é:

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

Por exemplo:

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

Operandos:

  1. input : tensor de quaisquer valores de tipo
  2. padding : tensor de quaisquer valores de tipo
  3. constant_values : tensor de quaisquer valores de tipo

Atributos:

Resultados:

  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