Эта страница переведена с помощью Cloud Translation API.
Switch to English

Определение диалекта tfl

Диалект TensorFlow Lite.

Этот диалект соответствует операциям TensorFlow Lite.

Инварианты:

  • Все значения относятся к тензорному типу (в частности, скаляры представлены с помощью нульмерных тензоров);

Определение операции

tfl.abs (TFL :: AbsOp)

Оператор абсолютного значения

Описание:

Учитывая тензор x , эта операция возвращает тензор, содержащий абсолютное значение каждого элемента в x . Например, если x - входной элемент, а y - выходной элемент, эта операция вычисляет \(y = |x|\).

Операнды:

  1. x : тензор любого типа значений

Атрибуты:

Полученные результаты:

  1. y : тензор любого типа значений

tfl.add_n (TFL :: AddNOp)

оператор add_n

Описание:

Поэлементно складывает все входные тензоры.

Операнды:

  1. inputs : тензор любого типа значения

Атрибуты:

Полученные результаты:

  1. sum : тензор любого типа значений

tfl.add (TFL :: AddOp)

Оператор сложения

Описание:

Поэлементная операция сложения.

Операнды:

  1. lhs : тензор значений любого типа
  2. rhs : тензор значений любого типа

Атрибуты:

Атрибут Тип MLIR Описание
fused_activation_function StringAttr объединенный атрибут перечисления активации

Полученные результаты:

  1. output : тензор любого типа значений

tfl.arg_max (TFL :: ArgMaxOp)

Оператор ArgMax

Описание:

Возвращает индекс с наибольшим значением по измерениям тензора.

Операнды:

  1. input : тензор любого типа значений
  2. dim : тензор любого типа значений

Атрибуты:

Атрибут Тип MLIR Описание
output_type Attribute производный атрибут attribute

Полученные результаты:

  1. output : тензор любого типа значений

tfl.arg_min (TFL :: ArgMinOp)

Оператор ArgMin

Описание:

Возвращает индекс с наименьшим значением по всем измерениям тензора. "A = [1, 10, 26.9, 2.8, 166.32, 62.3] b = tf.math.argmin (input = a) c = tf.keras.backend.eval (б)

Операнды:

  1. input : тензор любого типа значений
  2. dim : тензор любого типа значений

Атрибуты:

Атрибут Тип MLIR Описание
output_type Attribute производный атрибут attribute

Полученные результаты:

  1. output : тензор любого типа значений

tfl.average_pool_2d (TFL :: AveragePool2DOp)

Оператор Average_pool_2d

Описание:

Выполняет операцию объединения среднего значения на входе.

Операнды:

  1. input : тензор любого типа значений

Атрибуты:

Атрибут Тип MLIR Описание
filter_height IntegerAttr 32-битный целочисленный атрибут атрибута
filter_width IntegerAttr 32-битный целочисленный атрибут атрибута
padding StringAttr атрибут перечисления заполнения
stride_h IntegerAttr 32-битный целочисленный атрибут атрибута
stride_w IntegerAttr 32-битный целочисленный атрибут атрибута
fused_activation_function StringAttr объединенный атрибут перечисления активации

Полученные результаты:

  1. output : тензор любого типа значений

tfl.basic_lstm (TFL :: BasicLSTMOp)

Базовый оператор lstm

Описание:

базовый оператор сотовой связи LSTM.

Операнды:

  1. data_input : тензор значений любого типа
  2. prev_activ_input : тензор значений любого типа
  3. weights_input : тензор значений любого типа
  4. biases_input : тензор значений любого типа
  5. prev_state_input : тензор значений любого типа

Атрибуты:

Атрибут Тип MLIR Описание
fused_activation_function StringAttr объединенный атрибут перечисления активации
cell_clip FloatAttr 32-битный атрибут атрибута с плавающей запятой
proj_clip FloatAttr 32-битный атрибут атрибута с плавающей запятой
kernel_type StringAttr lstm тип ядра enum case атрибут BASIC

Полученные результаты:

  1. activ_output : 2D тензор значений любого типа
  2. state_output : 2D тензор значений любого типа
  3. concat_temp : 2D тензор значений любого типа
  4. activ_temp : 2D тензор значений любого типа

tfl.batch_to_space_nd (TFL :: BatchToSpaceNdOp)

Оператор BatchToSpaceNd

Описание:

Эта операция преобразует "пакетное" измерение 0 в пространственные измерения.

Операнды:

  1. input : тензор любого типа значений
  2. block_shape : тензор значений любого типа
  3. indices : тензор любого типа значения

Атрибуты:

Полученные результаты:

  1. output : тензор любого типа значений

tfl.cast (TFL :: CastOp)

Оператор приведения

Описание:

Преобразует ввод из типа ввода в тип вывода.

Операнды:

  1. input : тензор любого типа значений

Атрибуты:

Полученные результаты:

  1. output : тензор любого типа значений

tfl.ceil (TFL :: CeilOp)

Оператор ceil

Описание:

Возвращает поэлементное значение ceil ввода.

Операнды:

  1. x : тензор любого типа значений

Атрибуты:

Полученные результаты:

  1. y : тензор любого типа значений

tfl.concatenation (TFL :: ConcatenationOp)

Оператор конкатенации

Описание:

Объединяет тензоры по одному измерению

Операнды:

  1. values : тензор любого типа значения

Атрибуты:

Атрибут Тип MLIR Описание
axis IntegerAttr 32-битный целочисленный атрибут атрибута
fused_activation_function StringAttr объединенный атрибут перечисления активации

Полученные результаты:

  1. output : тензор любого типа значений

tfl.pseudo_const (TFL :: ConstOp)

Постоянная псевдооперация.

Описание:

Представляет постоянное значение на диалекте TensorFlow Lite. Это не настоящая операция, и вместо этого она будет переведена в буфер.

Операции разрешено иметь все атрибуты того же типа, что и tf.Const (например, разрешены непрозрачные атрибуты TF).

Операнды:

Атрибуты:

Атрибут Тип MLIR Описание
value ElementsAttr атрибут атрибута постоянного вектора / тензора

Полученные результаты:

  1. output : тензор любого типа значений

tfl.conv_2d (TFL :: Conv2DOp)

Оператор свертки

Описание:

Выполняет операцию свертки на входах.

Входы: inputs[0] : обязательные: входные данные тензора активации inputs[1] : обязательные: inputs[2] тензора весов фильтра inputs[2] : необязательные: тензор смещения

Операнды:

  1. input : тензор любого типа значений
  2. filter : тензор любого типа значений
  3. bias : тензор любого типа значений или без типа

Атрибуты:

Атрибут Тип MLIR Описание
dilation_h_factor IntegerAttr 32-битный целочисленный атрибут атрибута
dilation_w_factor IntegerAttr 32-битный целочисленный атрибут атрибута
fused_activation_function StringAttr объединенный атрибут перечисления активации
padding StringAttr атрибут перечисления заполнения
stride_h IntegerAttr 32-битный целочисленный атрибут атрибута
stride_w IntegerAttr 32-битный целочисленный атрибут атрибута

Полученные результаты:

  1. output : тензор любого типа значений

tfl.convolution_2d_transpose_bias (TFL :: Convolution2DTransposeBiasOp)

Транспонировать свертку с оператором смещения

Описание:

Выполняет операцию свертки транспонирования для входных данных с возможностью добавления смещения. Обратите внимание, что это настраиваемая операция, которая не поддерживается в стандартной среде выполнения.

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

Операнды:

  1. input : тензор любого типа значений
  2. filter : тензор любого типа значений
  3. bias : тензор любого типа значений или без типа

Атрибуты:

Атрибут Тип MLIR Описание
padding StringAttr атрибут перечисления заполнения
stride_h IntegerAttr 32-битный целочисленный атрибут атрибута
stride_w IntegerAttr 32-битный целочисленный атрибут атрибута

Полученные результаты:

  1. output : тензор любого типа значений

tfl.cos (TFL :: CosOp)

Оператор косинуса

Описание:

Вычисляет поэлементно косинус ввода

Операнды:

  1. x : тензор любого типа значений

Атрибуты:

Полученные результаты:

  1. y : тензор любого типа значений

tfl.densify (TFL :: DensifyOp)

Оператор уплотнения

Описание:

Преобразует разреженный тензор в плотный формат.

Операнды:

  1. input : тензор любого типа значений

Атрибуты:

Полученные результаты:

  1. output : тензор любого типа значений

tfl.depth_to_space (TFL :: DepthToSpaceOp)

Оператор DepthToSpace

Описание:

Преобразует данные из глубины в блоки пространственных данных. Это обратное преобразование SpaceToDepth. Более конкретно, эта операция выводит копию входного тензора, где значения из измерения depth перемещаются в пространственных блоках в измерения height и width . block_size указывает размер входного блока и способ перемещения данных.

Операнды:

  1. input : тензор любого типа значений

Атрибуты:

Атрибут Тип MLIR Описание
block_size IntegerAttr 32-битный целочисленный атрибут атрибута

Полученные результаты:

  1. output : тензор любого типа значений

tfl.depthwise_conv_2d (TFL :: DepthwiseConv2DOp)

Оператор свертки с разделением по глубине

Описание:

Выполняет операцию свертки на входах.

Входы: inputs[0] : обязательные: входные данные тензора активации inputs[1] : обязательные: inputs[2] тензора весов фильтра inputs[2] : необязательные: тензор смещения

Операнды:

  1. input : тензор любого типа значений
  2. filter : тензор любого типа значений
  3. bias : тензор любого типа значений или без типа

Атрибуты:

Атрибут Тип MLIR Описание
dilation_h_factor IntegerAttr 32-битный целочисленный атрибут атрибута
dilation_w_factor IntegerAttr 32-битный целочисленный атрибут атрибута
fused_activation_function StringAttr объединенный атрибут перечисления активации
padding StringAttr атрибут перечисления заполнения
stride_h IntegerAttr 32-битный целочисленный атрибут атрибута
stride_w IntegerAttr 32-битный целочисленный атрибут атрибута
depth_multiplier IntegerAttr 32-битный целочисленный атрибут атрибута

Полученные результаты:

  1. output : тензор любого типа значений

tfl.dequantize (TFL :: DequantizeOp)

Оператор деквантования

Описание:

Преобразует квантованный массив целых чисел в числа с плавающей запятой в соответствии с параметрами квантования.

Операнды:

  1. input : тензор любого типа значений

Атрибуты:

Полученные результаты:

  1. output : тензор любого типа значений

tfl.div (TFL :: DivOp)

Оператор отдела

Описание:

Поэлементное деление.

Операнды:

  1. lhs : тензор значений любого типа
  2. rhs : тензор значений любого типа

Атрибуты:

Атрибут Тип MLIR Описание
fused_activation_function StringAttr объединенный атрибут перечисления активации

Полученные результаты:

  1. output : тензор любого типа значений

tfl.elu (TFL :: EluOp)

Оператор экспоненциальной линейной единицы

Описание:

Вычисляет экспоненциальную линейную f (x) -> exp (x) - 1 для x <0, x для x> = 0. Поэлементно.

Операнды:

  1. x : тензор любого типа значений

Атрибуты:

Полученные результаты:

  1. y : тензор любого типа значений

tfl.embedding_lookup (TFL :: EmbeddingLookupOp)

Встраивание оператора поиска

Описание:

Ищет идентификаторы в списке встраиваемых тензоров.

Операнды:

  1. lookup : тензор любого типа значений
  2. value : тензор любого типа значений

Атрибуты:

Полученные результаты:

  1. output : тензор любого типа значений

tfl.equal (TFL :: EqualOp)

Равный оператор

Описание:

Поэлементно возвращает элемент истинности x == y

Операнды:

  1. x : тензор любого типа значений
  2. y : тензор любого типа значений

Атрибуты:

Полученные результаты:

  1. output : тензор любого типа значений

tfl.exp (TFL :: ExpOp)

Оператор естественного возведения в степень

Описание:

Выполняет поэлементную операцию естественного возведения в степень на входе.

Операнды:

  1. x : тензор любого типа значений

Атрибуты:

Полученные результаты:

  1. y : тензор любого типа значений

tfl.expand_dims (TFL :: ExpandDimsOp)

Вставляет размер 1 в форму тензора.

Описание:

При input тензора эта операция вставляет размерность 1 на axis индекса измерения input формы. axis индекса измерения начинается с нуля; если вы укажете отрицательное число для axis оно будет отсчитываться в обратном направлении от конца.

Эта операция полезна, если вы хотите добавить измерение партии к одному элементу. Например, если у вас есть одно изображение формы [height, width, channels] , вы можете сделать его expand_dims(image, 0) из 1 изображения с помощью expand_dims(image, 0) , что сделает фигуру [1, height, width, channels] .

Другие примеры:

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

Эта операция требует, чтобы:

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

Эта операция связана с squeeze() , которая удаляет размеры размера 1.

Операнды:

  1. input : тензор любого типа значений
  2. dim : тензор любого целочисленного типа

Атрибуты:

Полученные результаты:

  1. output : тензор любого типа значений

tfl.external_const (TFL :: ExternalConstOp)

Внешняя константа op.

Описание:

Внешняя константа op содержит buffer_index которая указывает на константу в плоском буфере.

Операнды:

Атрибуты:

Атрибут Тип MLIR Описание
buffer_index IntegerAttr 32-битный целочисленный атрибут атрибута

Полученные результаты:

  1. output : тензор любого типа значений

tfl.fake_quant (TFL :: FakeQuantOp)

Оператор FakeQuant

Описание:

Поддельное квантование тензора «входов» типа float с помощью скаляров с плавающей запятой min и max для получения тензора «выходов» той же формы, что и входных данных.

Операнды:

  1. input : тензор любого типа значений

Атрибуты:

Атрибут Тип MLIR Описание
min FloatAttr 32-битный атрибут атрибута с плавающей запятой
max FloatAttr 32-битный атрибут атрибута с плавающей запятой
num_bits IntegerAttr 32-битный целочисленный атрибут атрибута
narrow_range BoolAttr атрибут атрибута bool

Полученные результаты:

  1. output : тензор любого типа значений

tfl.fill (TFL :: FillOp)

Заполните тензор заданным значением.

Описание:

Заполните тензор заданным значением.

Операнды:

  1. dims : тензор любого типа значений
  2. value : тензор любого типа значений

Атрибуты:

Полученные результаты:

  1. res : тензор любого типа значений

tfl.floor_div (TFL :: FloorDivOp)

Оператор этажа div

Описание:

Поэлементная операция div.

Операнды:

  1. lhs : тензор значений любого типа
  2. rhs : тензор значений любого типа

Атрибуты:

Полученные результаты:

  1. output : тензор любого типа значений

tfl.floor_mod (TFL :: FloorModOp)

Напоминание о делении

Описание:

Работа напоминания о поэлементном делении.

Операнды:

  1. lhs : тензор значений любого типа
  2. rhs : тензор значений любого типа

Атрибуты:

Полученные результаты:

  1. output : тензор любого типа значений

tfl.floor (TFL :: FloorOp)

Оператор этажа

Описание:

Возвращает поэлементное минимальное значение ввода.

Операнды:

  1. x : тензор любого типа значений

Атрибуты:

Полученные результаты:

  1. y : тензор любого типа значений

tfl.fully_connected (TFL :: FullyConnectedOp)

Полностью подключенная операционная

Описание:

Операнды:

  1. input : тензор любого типа значений
  2. filter : тензор любого типа значений
  3. bias : тензор любого типа значений или без типа

Атрибуты:

Атрибут Тип MLIR Описание
fused_activation_function StringAttr объединенный атрибут перечисления активации
weights_format StringAttr полностью подключенные параметры весов атрибут формата
keep_num_dims BoolAttr атрибут атрибута bool

Полученные результаты:

  1. output : тензор любого типа значений

tfl.gather_nd (TFL :: GatherNdOp)

Оператор Gather_nd

Описание:

Соберите срезы из params в тензор с формой, указанной indices .

Операнды:

  1. params : тензор любого типа значений
  2. indices : тензор любого типа значения

Атрибуты:

Полученные результаты:

  1. output : тензор любого типа значений

tfl.gather (TFL :: GatherOp)

Оператор сбора

Описание:

Соберите кусочки от params оси axis в соответствии с indices .

Операнды:

  1. params : тензор любого типа значений
  2. indices : тензор любого типа значения

Атрибуты:

Атрибут Тип MLIR Описание
axis IntegerAttr 32-битный целочисленный атрибут атрибута

Полученные результаты:

  1. output : тензор любого типа значений

tfl.greater_equal (TFL :: GreaterEqualOp)

Оператор Greater_equal

Описание:

Поэлементная операция superior_equal.

Операнды:

  1. lhs : тензор значений любого типа
  2. rhs : тензор значений любого типа

Атрибуты:

Полученные результаты:

  1. output : тензор любого типа значений

tfl.greater (TFL :: GreaterOp)

Большой оператор

Описание:

Поэлементная большая операция.

Операнды:

  1. lhs : тензор значений любого типа
  2. rhs : тензор значений любого типа

Атрибуты:

Полученные результаты:

  1. output : тензор любого типа значений

tfl.hard_swish (TFL :: HardSwishOp)

Функция активации Hardswish.

Описание:

Поэлементно вычисляет функцию активации f (x) -> (x * relu6 (x + 3)) / 6.

Операнды:

  1. input : тензор любого типа значений

Атрибуты:

Полученные результаты:

  1. out : тензор любого типа значений

tfl.l2_normalization (TFL :: L2NormalizationOp)

Оператор нормализации L2

Описание:

L2 Нормализация Op

Операнды:

  1. input : тензор любого типа значений

Атрибуты:

Атрибут Тип MLIR Описание
fused_activation_function StringAttr объединенный атрибут перечисления активации

Полученные результаты:

  1. output : тензор любого типа значений

tfl.lstm (TFL :: LSTMOp)

Полный оператор lstm

Описание:

Регулярный сетевой уровень долгой кратковременной памяти (LSTM). Реализация по умолчанию без глазка основана на: http://deeplearning.cs.cmu.edu/pdfs/Hochreiter97_lstm.pdf S. Hochreiter и J. Schmidhuber. «Кратковременная долговременная память». Neural Computation, 9 (8): 1735-1780, 1997. Реализация «глазка» основана на: https://research.google.com/pubs/archive/43905.pdf Хасим Сак, Эндрю Старший и Франсуаза Бофейс. «Архитектура рекуррентных нейронных сетей с кратковременной памятью для крупномасштабного акустического моделирования. INTERSPEECH, 2014. Связь входного и забытого логического элементов (CIFG) основана на: http://arxiv.org/pdf/1503.04069.pdf Greff et al. . "LSTM: Космическая одиссея поиска" Нормализация слоев основана на: https://arxiv.org/pdf/1607.06450.pdf Ба и др. «Нормализация слоев»

Операнды:

  1. input : тензор любого типа значений
  2. input_to_input_weights : тензор значений любого типа или без типа
  3. input_to_forget_weights : тензор значений любого типа
  4. input_to_cell_weights : тензор значений любого типа
  5. input_to_output_weights : тензор значений любого типа
  6. recurrent_to_input_weights : тензор значений любого типа или без типа
  7. recurrent_to_forget_weights : тензор значений любого типа
  8. recurrent_to_cell_weights : тензор значений любого типа
  9. recurrent_to_output_weights : тензор значений любого типа
  10. cell_to_input_weights : тензор значений любого типа или без типа
  11. cell_to_forget_weights : тензор значений любого типа или без типа
  12. cell_to_output_weights : тензор значений любого типа или без типа
  13. input_gate_bias : тензор значений любого типа или без типа
  14. forget_gate_bias : тензор любого типа значений
  15. cell_bias : тензор значений любого типа
  16. output_gate_bias : тензор значений любого типа
  17. projection_weights : тензор любого типа значений или без типа
  18. projection_bias : тензор любого типа значений или без типа
  19. input_activation_state : тензор с сохранением состояния
  20. input_cell_state : тензор с сохранением состояния
  21. input_layer_norm_coefficients : тензор любого значения типа или никакого типа
  22. forget_layer_norm_coefficients : тензор любого значения типа или никакого типа
  23. cell_layer_norm_coefficients : тензор любого типа значений или никакого типа
  24. output_layer_norm_coefficients : тензор любого типа значений или никакого типа

Атрибуты:

Атрибут Тип MLIR Описание
fused_activation_function StringAttr объединенный атрибут перечисления активации
cell_clip FloatAttr 32-битный атрибут атрибута с плавающей запятой
proj_clip FloatAttr 32-битный атрибут атрибута с плавающей запятой
kernel_type StringAttr lstm тип ядра enum case FULL атрибут

Полученные результаты:

  1. output : тензор любого типа значений

tfl.leaky_relu (TFL :: LeakyReluOp)

Дырявый оператор Relu

Описание:

Поэлементный оператор Leaky ReLU x -> x> = 0? х: (альфа * х)

Операнды:

  1. input : тензор любого типа значений

Атрибуты:

Атрибут Тип MLIR Описание
alpha FloatAttr 32-битный атрибут атрибута с плавающей запятой

Полученные результаты:

  1. output : тензор любого типа значений

tfl.less_equal (TFL :: LessEqualOp)

Оператор Less_equal

Описание:

Поэлементная операция less_equal.

Операнды:

  1. lhs : тензор значений любого типа
  2. rhs : тензор значений любого типа

Атрибуты:

Полученные результаты:

  1. output : тензор любого типа значений

tfl.less (TFL :: LessOp)

Меньше оператора

Описание:

Поэлементная работа.

Операнды:

  1. lhs : тензор значений любого типа
  2. rhs : тензор значений любого типа

Атрибуты:

Полученные результаты:

  1. output : тензор любого типа значений

tfl.local_response_normalization (TFL :: LocalResponseNormalizationOp)

Нормализация местного отклика.

Описание:

Четырехмерный input тензор обрабатывается как трехмерный массив одномерных векторов (по последнему измерению), и каждый вектор нормализуется независимо. В заданном векторе каждый компонент делится на взвешенную квадратную сумму входных данных в пределах depth_radius . В деталях,

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

Подробнее см. Крижевский и др., Классификация ImageNet с глубокими сверточными нейронными сетями (NIPS 2012) .

Операнды:

  1. input : тензор любого типа значений

Атрибуты:

Атрибут Тип MLIR Описание
radius IntegerAttr 32-битный целочисленный атрибут атрибута
bias FloatAttr 32-битный атрибут атрибута с плавающей запятой
alpha FloatAttr 32-битный атрибут атрибута с плавающей запятой
beta FloatAttr 32-битный атрибут атрибута с плавающей запятой

Полученные результаты:

  1. output : тензор любого типа значений

tfl.log (TFL :: LogOp)

Оператор натурального логарифма

Описание:

Выполняет поэлементную операцию натурального логарифма при вводе.

Операнды:

  1. x : тензор любого типа значений

Атрибуты:

Полученные результаты:

  1. y : тензор любого типа значений

tfl.log_softmax (TFL :: LogSoftmaxOp)

Оператор журнала softmax

Описание:

Вычисляет поэлементный журнал активации softmax по следующей формуле

input - log (reduce_sum (exp (вход), dim))

Операнды:

  1. input : тензор любого типа значений

Атрибуты:

Полученные результаты:

  1. output : тензор любого типа значений

tfl.logical_and (TFL :: LogicalAndOp)

Логический оператор И

Описание:

Поэлементная логическая операция И.

Операнды:

  1. lhs : тензор значений любого типа
  2. rhs : тензор значений любого типа

Атрибуты:

Полученные результаты:

  1. output : тензор любого типа значений

tfl.logical_not (TFL :: LogicalNotOp)

Логический оператор НЕ

Описание:

Поэлементная операция логического НЕ.

Операнды:

  1. lhs : тензор значений любого типа

Атрибуты:

Полученные результаты:

  1. output : тензор любого типа значений

tfl.logical_or (TFL :: LogicalOrOp)

Логический оператор ИЛИ

Описание:

Поэлементная операция логического ИЛИ.

Операнды:

  1. lhs : тензор значений любого типа
  2. rhs : тензор значений любого типа

Атрибуты:

Полученные результаты:

  1. output : тензор любого типа значений

tfl.logistic (TFL :: LogisticOp)

Логистический оператор

Описание:

Поэлементно вычисляет сигмоид ввода

Операнды:

  1. x : тензор любого типа значений

Атрибуты:

Полученные результаты:

  1. y : тензор любого типа значений

tfl.matrix_diag (TFL :: MatrixDiagOp)

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

Описание:

Для данной диагонали возвращает тензор с диагональю и всем остальным, дополненным нулями. Предположим, что диагональ имеет k измерений [I, J, K, ..., N] , тогда на выходе будет тензор ранга k+1 с размерами [I, J, K, ..., N, N] где: output[i, j, k, ..., m, n] = 1{m=n} * diagonal[i, j, k, ..., n].

Операнды:

  1. diagonal : тензор любого типа значений

Атрибуты:

Полученные результаты:

  1. output : тензор любого типа значений

tfl.matrix_set_diag (TFL :: MatrixSetDiagOp)

Returns a batched matrix tensor with new batched diagonal values.

Описание:

Учитывая input и diagonal , эта операция возвращает тензор с той же формой и значениями, что и input , за исключением главной диагонали самых внутренних матриц. Они будут заменены значениями по diagonal .

Операнды:

  1. input : тензор 32-битных чисел с плавающей запятой или 32-битных целых, или 64-битных целых, или 8-битных целых чисел, или типа QI8, или типа QI16, или типа QUI8, или значений типа TFLite uint8 или TFLite quint8.
  2. diagonal : тензор 32-битных чисел с плавающей запятой или 32-битных целых или 64-битных целых или 8-битных целых чисел или значений типа QI8 или QI16, или типа QUI8, или типа TFLite uint8, или значений типа TFLite quint8

Атрибуты:

Полученные результаты:

  1. output : тензор 32-битных чисел с плавающей запятой или 32-битных целых, или 64-битных целых, или 8-битных целых чисел, или типа QI8, или типа QI16, или типа QUI8, или значений типа TFLite uint8 или TFLite, типа quint8

tfl.max_pool_2d (TFL :: MaxPool2DOp)

Max Pool 2D оп

Описание:

Выполняет максимальный бассейн 2D на входе.

Входы: inputs[0] : обязательно: входной тензор

Операнды:

  1. input : тензор любого типа значений

Атрибуты:

Атрибут Тип MLIR Описание
padding StringAttr атрибут перечисления заполнения
stride_w IntegerAttr 32-битный целочисленный атрибут атрибута
stride_h IntegerAttr 32-битный целочисленный атрибут атрибута
filter_width IntegerAttr 32-битный целочисленный атрибут атрибута
filter_height IntegerAttr 32-битный целочисленный атрибут атрибута
fused_activation_function StringAttr объединенный атрибут перечисления активации

Полученные результаты:

  1. output : тензор любого типа значений

tfl.max_pooling_with_argmax_2d (TFL :: MaxPoolingWithArgMax2DOp)

Max Pool 2D с argmax op

Описание:

Выполняет максимальный пул на входе и выводит как максимальные значения, так и индексы. Каждый индекс представляет собой сглаженный индекс в подмассиве размером «filter_w» x «filter_h». Обратите внимание, что это настраиваемая операция, которая не поддерживается в стандартной среде выполнения.

Входы: inputs[0] : обязательно: тензор активации входа

Операнды:

  1. input : тензор любого типа значений

Атрибуты:

Атрибут Тип MLIR Описание
padding StringAttr атрибут перечисления заполнения
stride_w IntegerAttr 32-битный целочисленный атрибут атрибута
stride_h IntegerAttr 32-битный целочисленный атрибут атрибута
filter_w IntegerAttr 32-битный целочисленный атрибут атрибута
filter_h IntegerAttr 32-битный целочисленный атрибут атрибута

Полученные результаты:

  1. value : тензор любого типа значений
  2. indices : тензор любого типа значения

tfl.max_unpooling_2d (TFL :: MaxUnpooling2DOp)

Макс Анпул 2D

Описание:

Выполняет операцию максимального удаления из пула. В некоторой степени это операция, обратная максимальному объединению: элементы во входном тензоре активации сохраняются в позиции, указанной входными индексами. Обратите внимание, что это настраиваемая операция, которая не поддерживается в стандартной среде выполнения.

Входы: inputs[0] : требуется: вход тензора активации inputs[1] : требуется: индексы входа

Операнды:

  1. input : тензор любого типа значений
  2. indices : тензор любого типа значения

Атрибуты:

Атрибут Тип MLIR Описание
padding StringAttr атрибут перечисления заполнения
stride_w IntegerAttr 32-битный целочисленный атрибут атрибута
stride_h IntegerAttr 32-битный целочисленный атрибут атрибута
filter_w IntegerAttr 32-битный целочисленный атрибут атрибута
filter_h IntegerAttr 32-битный целочисленный атрибут атрибута

Полученные результаты:

  1. outputs : тензор любого типа значения

tfl.maximum (TFL :: MaximumOp)

Макс оператор

Описание:

Поэлементная максимальная работа.

Операнды:

  1. lhs : тензор значений любого типа
  2. rhs : тензор значений любого типа

Атрибуты:

Полученные результаты:

  1. max : тензор любого типа значений

tfl.mean (TFL :: MeanOp)

Средний оператор

Описание:

Вычисляет среднее значение элементов по размеру тензора. Уменьшает input_tensor по размерам, указанным на оси. Если keepdims не истинно, ранг тензора уменьшается на 1 для каждой записи на оси. Если keepdims истинно, уменьшенные размеры сохраняются до длины 1.

Операнды:

  1. input : тензор любого типа значений
  2. axis : тензор любого типа значений

Атрибуты:

Атрибут Тип MLIR Описание
keep_dims BoolAttr Атрибут атрибут BOOL

Полученные результаты:

  1. output : тензор любого типа значений

tfl.minimum (TFL :: MinimumOp)

Мин оператор

Описание:

Поэлементная работа мин.

Операнды:

  1. lhs : тензор значений любого типа
  2. rhs : тензор значений любого типа

Атрибуты:

Полученные результаты:

  1. min : тензор любого типа значений

tfl.mirror_pad (TFL :: MirrorPadOp)

Оператор MirrorPad. Добавляет тензор к зеркальным значениям.

Описание:

Эта операция дополняет ввод зеркальными значениями в соответствии с указанными вами отступами. paddings - это целочисленный тензор с формой [n, 2], где n - ранг ввода. Для каждого измерения D ввода paddings [D, 0] указывает, сколько значений нужно добавить перед содержимым ввода в этом измерении, а paddings [D, 1] указывает, сколько значений добавить после содержимого ввода в этом измерении.

Оба отступа [D, 0] и отступы [D, 1] не должны быть больше, чем input.dim_size (D) (или input.dim_size (D) - 1), если copy_border равен true (если false, соответственно).

Дополненный размер каждого измерения D вывода равен:

отступы (D, 0) + input.dim_size (D) + отступы (D, 1)

Операнды:

  1. input : тензор любого типа значений
  2. pad : тензор любого типа значений

Атрибуты:

Атрибут Тип MLIR Описание
mode StringAttr Атрибут перечисления панели зеркала

Полученные результаты:

  1. output : тензор любого типа значений

tfl.mul (TFL :: MulOp)

Оператор умножения

Описание:

Поэлементная операция умножения.

Операнды:

  1. lhs : тензор значений любого типа
  2. rhs : тензор значений любого типа

Атрибуты:

Атрибут Тип MLIR Описание
fused_activation_function StringAttr объединенный атрибут перечисления активации

Полученные результаты:

  1. output : тензор любого типа значений

tfl.neg (TFL :: NegOp)

оператор Отрицание

Описание:

Вычисляет поэлементное отрицание ввода

Операнды:

  1. x : тензор любого типа значений

Атрибуты:

Полученные результаты:

  1. y : тензор любого типа значений

tfl.non_max_suppression_v4 (TFL :: NonMaxSuppressionV4Op)

Жадно выбирает подмножество ограничивающих рамок в порядке убывания оценок,

Описание:

отсекая блоки, которые имеют высокое пересечение-над-объединением (IOU), перекрываются с ранее выбранными блоками. Ограничительные score_threshold с оценкой меньше score_threshold удаляются. Ограничивающие прямоугольники представлены как [y1, x1, y2, x2], где (y1, x1) и (y2, x2) - координаты любой диагональной пары углов прямоугольника, и координаты могут быть предоставлены как нормализованные (т. Е. Лежащие в интервал [0, 1]) или абсолютный. Обратите внимание, что этот алгоритм не зависит от того, где начало координат находится в системе координат, и, в более общем случае, инвариантен к ортогональным преобразованиям и переносам системы координат; таким образом, перевод или отражение системы координат приводят к тому, что алгоритм выбирает одни и те же блоки. Результатом этой операции является набор целых чисел, индексируемый во входной коллекции ограничивающих прямоугольников, представляющих выбранные прямоугольники. Координаты ограничивающего прямоугольника, соответствующие выбранным индексам, затем могут быть получены с tf.gather operation . Например: selected_indices = tf.image.non_max_suppression_v2 (блоки, оценки, max_output_size, iou_threshold, score_threshold) selected_boxes = tf.gather (коробки, selected_indices)

Операнды:

  1. boxes : тензор любого типа значения
  2. scores : тензор любого типа значений
  3. max_output_size : тензор значений любого типа
  4. iou_threshold : тензор любого типа значений
  5. score_threshold : тензор значений любого типа

Атрибуты:

Полученные результаты:

  1. selected_indices : тензор значений любого типа
  2. valid_outputs : тензор значений любого типа

tfl.non_max_suppression_v5 (TFL :: NonMaxSuppressionV5Op)

Жадно выбирает подмножество ограничивающих рамок в порядке убывания оценок,

Описание:

отсекая блоки, которые имеют высокое пересечение по объединению (IOU), перекрываются с ранее выбранными блоками. Ограничительные score_threshold с оценкой меньше score_threshold удаляются. Ограничивающие прямоугольники представлены как [y1, x1, y2, x2], где (y1, x1) и (y2, x2) - координаты любой диагональной пары углов прямоугольника, и координаты могут быть предоставлены как нормализованные (т. Е. Лежащие в интервал [0, 1]) или абсолютный. Обратите внимание, что этот алгоритм не зависит от того, где начало координат находится в системе координат, и, в более общем случае, инвариантен к ортогональным преобразованиям и переносам системы координат; таким образом, перевод или отражение системы координат приводят к тому, что алгоритм выбирает одни и те же блоки. Результатом этой операции является набор целых чисел, индексируемый во входной коллекции ограничивающих прямоугольников, представляющих выбранные прямоугольники. Координаты ограничивающего прямоугольника, соответствующие выбранным индексам, затем могут быть получены с tf.gather operation . Например: selected_indices = tf.image.non_max_suppression_v2 (boxs, scores, max_output_size, iou_threshold, score_threshold) selected_boxes = tf.gather (box, selected_indices) Эта операция также поддерживает режим Soft-NMS (с гауссовым взвешиванием) (cf Bodla et al. , https://arxiv.org/abs/1704.04503), где блоки уменьшают оценку других перекрывающихся блоков, а не вызывают их прямую обрезку. Чтобы включить этот режим Soft-NMS, установите для параметра soft_nms_sigma значение больше 0.

Операнды:

  1. boxes : тензор любого типа значения
  2. scores : тензор любого типа значений
  3. max_output_size : тензор значений любого типа
  4. iou_threshold : тензор любого типа значений
  5. score_threshold : тензор значений любого типа
  6. soft_nms_sigma : тензор значений любого типа

Атрибуты:

Полученные результаты:

  1. selected_indices : тензор значений любого типа
  2. selected_scores : тензор значений любого типа
  3. valid_outputs : тензор значений любого типа

tfl.not_equal (TFL :: NotEqualOp)

Оператор Not_equal

Описание:

Поэлементная операция not_equal.

Операнды:

  1. lhs : тензор значений любого типа
  2. rhs : тензор значений любого типа

Атрибуты:

Полученные результаты:

  1. output : тензор любого типа значений

tfl.NumericVerify (TFL :: NumericVerifyOp)

Проверяет числовые значения двух операндов

Описание:

Операция NumericVerify - это операция отладки для проверки числовых значений двух активаций. Это специальная операция в TFLite.

Операнды:

  1. input : тензор любого типа значений
  2. ref : тензор любого типа значений

Атрибуты:

Атрибут Тип MLIR Описание
tolerance FloatAttr 32-битный атрибут атрибута с плавающей запятой

Полученные результаты:

tfl.one_hot (TFL :: OneHotOp)

Оператор OneHot

Описание:

Возвращает один горячий тензор. Ячейки, представленные индексами в indices принимают значение on_value , а все остальные ячейки принимают значение off_value .

Если входные indices имеют ранг N , выходные данные будут иметь ранг N+1 Новая ось создается на axis измерения (по умолчанию: новая ось добавляется в конце).

Операнды:

  1. indices : тензор любого типа значения
  2. depth : тензор любого типа значений
  3. on_value : тензор значений любого типа
  4. off_value : тензор значений любого типа

Атрибуты:

Атрибут Тип MLIR Описание
axis IntegerAttr 32-битный целочисленный атрибут атрибута

Полученные результаты:

  1. output : тензор любого типа значений

tfl.prelu (TFL :: PReluOp)

Параметризованный оператор Relu

Описание:

Параметризованный оператор Relu x -> x> = 0? x: (alpha * x), где альфа - обучаемый тензор. alpha должен иметь ранг на единицу меньше, чем вход, поскольку он не имеет размерности пакета, а другие измерения должны быть того же размера, что и вход, или размер 1, если он транслируется во втором случае.

Операнды:

  1. input : тензор любого типа значений
  2. alpha : тензор любого типа значений

Атрибуты:

Полученные результаты:

  1. output : тензор любого типа значений

tfl.pack (TFL :: PackOp)

Упаковывает список тензоров по размерности в один тензор

Описание:

values_count список тензоров values_count R в один тензор values_count (R+1) .

values_count тензоры values_count в values в тензор с рангом один выше, чем каждый тензор в values , упаковывая их по измерению axis .

Дан список тензоров формы (A, B, C) ;

если axis == 0 output тензор будет иметь форму (N, A, B, C) . если axis == 1 то output тензор будет иметь форму (A, N, B, C) . И т.п.

Например:

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

Это противоположно unpack .

Операнды:

  1. values : тензор любого типа значения

Атрибуты:

Атрибут Тип MLIR Описание
values_count IntegerAttr 32-битный целочисленный атрибут атрибута
axis IntegerAttr 32-битный целочисленный атрибут атрибута

Полученные результаты:

  1. output : тензор любого типа значений

tfl.pad (TFL :: PadOp)

Оператор заполнения

Описание:

Эта операция дополняет input нулями в соответствии с paddings вами paddings . paddings - это целочисленный тензор с формой [Dn, 2] , где n - ранг input . Для каждого измерения D input paddings[D, 0] указывает, сколько нулей нужно добавить перед содержимым input в этом измерении, а paddings[D, 1] указывает, сколько нулей добавить после содержимого input в этом измерении.

Дополненный размер каждого измерения D вывода равен:

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

Например:

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

Операнды:

  1. input : тензор любого типа значений
  2. padding : тензор любых значений типа

Атрибуты:

Полученные результаты:

  1. output : тензор любого типа значений

tfl.padv2 (TFL :: PadV2Op)

Оператор заполнения v2

Описание:

Эта операция дополняет input соответствии с указанными вами paddings и constant_values . paddings - это целочисленный тензор с формой [Dn, 2] , где n - ранг input . Для каждого измерения D input paddings[D, 0] указывает, сколько нулей нужно добавить перед содержимым input в этом измерении, а paddings[D, 1] указывает, сколько нулей добавить после содержимого input в этом измерении. constant_values - это скалярный тензор того же типа, что и input который указывает значение, используемое для input заполнения.

Дополненный размер каждого измерения D вывода равен:

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

Например:

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

Операнды:

  1. input : тензор любого типа значений
  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