日付を保存! Google I / Oが5月18日から20日に戻ってきます今すぐ登録
このページは Cloud Translation API によって翻訳されました。
Switch to English

方言 'tfl'の定義

TensorFlowLite方言。

この方言は、TensorFlowLite操作にマッピングされます。

不変量:

  • すべての値はテンソルタイプです(特に、スカラーはゼロ次元テンソルを使用して表されます)。

操作の定義

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派生属性属性

結果:

  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 (b)

オペランド:

  1. input :任意のタイプの値のテンソル
  2. dim :任意のタイプの値のテンソル

属性:

属性MLIRタイプ説明
output_type 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ビットのfloat属性属性
proj_clip FloatAttr 32ビットのfloat属性属性
kernel_type StringAttr lstmカーネル型列挙型ケース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次元に沿ってテンソルを連結します

オペランド:

  1. values :任意のタイプの値のテンソル

属性:

属性MLIRタイプ説明
axis IntegerAttr 32ビット整数属性属性
fused_activation_function StringAttr融合アクティベーション列挙型属性

結果:

  1. output :任意のタイプの値のテンソル

tfl.pseudo_const(TFL :: ConstOp)

一定の疑似操作。

説明:

TensorFlowLiteダイアレクトの定数値を表します。これは実際の操作ではなく、代わりにバッファに下げられます。

opは、tf.Constと同じタイプの属性を持つことができます(たとえば、不透明なTF属性が許可されます)。

オペランド:

属性:

属性MLIRタイプ説明
value ElementsAttr定数ベクトル/テンソル属性属性

結果:

  1. output :任意のタイプの値のテンソル

tfl.conv_2d(TFL :: Conv2DOp)

畳み込み演算子

説明:

入力に対して畳み込み演算を実行します。

入力: inputs[0] :必須:入力アクティベーションテンソルinputs[1] :必須:フィルター重みテンソル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次元からの値が空間ブロックでheightwidth次元に移動depthれる入力テンソルのコピーを出力します。 attr block_sizeは、入力ブロックサイズとデータの移動方法を示します。

オペランド:

  1. input :任意のタイプの値のテンソル

属性:

属性MLIRタイプ説明
block_size IntegerAttr 32ビット整数属性属性

結果:

  1. output :任意のタイプの値のテンソル

tfl.depthwise_conv_2d(TFL :: DeepthwiseConv2DOp)

深さ方向に分離可能な畳み込み演算子

説明:

入力に対して畳み込み演算を実行します。

入力: inputs[0] :必須:入力アクティベーションテンソルinputs[1] :必須:フィルター重みテンソル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 :: EmbeddedLookupOp)

埋め込みルックアップ演算子

説明:

埋め込みテンソルのリストでIDを検索します。

オペランド:

  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与えられると、この操作はinputの形状の次元インデックスaxisに1の次元を挿入します。寸法インデックスaxisはゼロから始まります。 axisに負の数を指定すると、最後から逆axisにカウントされます。

この操作は、バッチディメンションを単一の要素に追加する場合に役立ちます。たとえば、形状[height, width, channels]単一の画像がある場合、 expand_dims(image, 0)expand_dims(image, 0) 1つの画像のバッチにすることができます。これにより、形状[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()

この操作は、サイズ1の次元を削除するsqueeze()関連しています。

オペランド:

  1. input :任意のタイプの値のテンソル
  2. dim :任意の整数型のテンソル

属性:

結果:

  1. output :任意のタイプの値のテンソル

tfl.external_const(TFL :: ExternalConstOp)

外部定数op。

説明:

外部buffer_indexは、 buffer_index内の定数を指すbuffer_indexを保持します。

オペランド:

属性:

属性MLIRタイプ説明
buffer_index IntegerAttr 32ビット整数属性属性

結果:

  1. output :任意のタイプの値のテンソル

tfl.fake_quant(TFL :: FakeQuantOp)

FakeQuant演算子

説明:

偽-floatスカラーminおよびmaxを介してfloat型の「inputs」テンソルを入力と同じ形状の「outputs」テンソルに偽量子化します。

オペランド:

  1. input :任意のタイプの値のテンソル

属性:

属性MLIRタイプ説明
min FloatAttr 32ビットのfloat属性属性
max FloatAttr 32ビットのfloat属性属性
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指定された形状のTensorにスライスを収集しindices

オペランド:

  1. params :任意のタイプの値のテンソル
  2. indices :任意のタイプの値のテンソル

属性:

結果:

  1. output :任意のタイプの値のテンソル

tfl.gather(TFL :: GatherOp)

オペレーターを集める

説明:

indicesに従ってparamsaxisからスライスを収集しindices

オペランド:

  1. params :任意のタイプの値のテンソル
  2. indices :任意のタイプの値のテンソル

属性:

属性MLIRタイプ説明
axis IntegerAttr 32ビット整数属性属性

結果:

  1. output :任意のタイプの値のテンソル

tfl.greater_equal(TFL :: GreaterEqualOp)

Greater_equal演算子

説明:

要素ごとのgreater_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正規化演算子

説明:

L2Normalization 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 Hasim Sak、Andrew Senior、およびFrancoiseBeaufaysに基づいています。 「大規模音響モデリングのための長短期記憶リカレントニューラルネットワークアーキテクチャ。INTERSPEECH、2014年。入力ゲートと忘却ゲート(CIFG)の結合は、以下に基づいています。http://arxiv.org/pdf/1503.04069.pdf Greff et al 。「LSTM:A Search Space Odyssey」レイヤーの正規化は、https://arxiv.org/pdf/1607.06450.pdf Ba etal。「LayerNormalization」に基づいています。

オペランド:

  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ビットのfloat属性属性
proj_clip FloatAttr 32ビットのfloat属性属性
kernel_type StringAttr lstmカーネルタイプ列挙型ケースFULL属性

結果:

  1. output :任意のタイプの値のテンソル

tfl.leaky_relu(TFL :: LeakyReluOp)

LeakyReluオペレーター

説明:

要素ごとのリークReLU演算子x-> x> = 0? x :(アルファ* x)

オペランド:

  1. input :任意のタイプの値のテンソル

属性:

属性MLIRタイプ説明
alpha FloatAttr 32ビットのfloat属性属性

結果:

  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)

ローカル応答の正規化。

説明:

4次元inputテンソルは、(最後の次元に沿った)1次元ベクトルの3次元配列として扱われ、各ベクトルは独立して正規化されます。指定されたベクトル内で、各コンポーネントは、 depth_radius内の入力の重み付き2乗和で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

詳細については、 Krizhevsky et al。、深層畳み込みニューラルネットワークを使用したImageNet分類(NIPS 2012)を参照してください

オペランド:

  1. input :任意のタイプの値のテンソル

属性:

属性MLIRタイプ説明
radius IntegerAttr 32ビット整数属性属性
bias FloatAttr 32ビットのfloat属性属性
alpha FloatAttr 32ビットのfloat属性属性
beta FloatAttr 32ビットのfloat属性属性

結果:

  1. output :任意のタイプの値のテンソル

tfl.log(TFL :: LogOp)

自然対数演算子

説明:

入力に対して要素ごとの自然対数演算を実行します。

オペランド:

  1. x :任意のタイプの値のテンソル

属性:

結果:

  1. y :任意のタイプの値のテンソル

tfl.log_softmax(TFL :: LogSoftmaxOp)

ソフトマックス演算子をログに記録する

説明:

次の式を使用して、要素ごとのログソフトマックスアクティベーションを計算します

入力-log(reduce_sum(exp(input)、dim))

オペランド:

  1. input :任意のタイプの値のテンソル

属性:

結果:

  1. output :任意のタイプの値のテンソル

tfl.logical_and(TFL :: LogicalAndOp)

論理AND演算子

説明:

要素ごとの論理AND演算。

オペランド:

  1. lhs :任意のタイプの値のテンソル
  2. rhs :任意のタイプ値のテンソル

属性:

結果:

  1. output :任意のタイプの値のテンソル

tfl.logical_not(TFL :: LogicalNotOp)

論理NOT演算子

説明:

要素ごとの論理NOT演算。

オペランド:

  1. lhs :任意のタイプの値のテンソル

属性:

結果:

  1. output :任意のタイプの値のテンソル

tfl.logical_or(TFL :: LogicalOrOp)

論理OR演算子

説明:

要素ごとの論理OR演算。

オペランド:

  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]であるとすると、出力は次元[I, J, K, ..., N, N]のランクk+1テンソルになり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.

説明:

inputdiagonal与えられると、この操作は、最も内側の行列の主対角を除いて、 inputと同じ形状と値を持つテンソルを返します。これらはdiagonalの値で上書きされます。

オペランド:

  1. input :32ビットfloatまたは32ビット整数または64ビット整数または8ビット整数またはQI8タイプまたはQI16タイプまたはQUI8タイプまたはTFLiteuint8タイプまたはTFLitequint8タイプ値のテンソル
  2. diagonal :32ビットfloatまたは32ビット整数または64ビット整数または8ビット整数またはQI8タイプまたはQI16タイプまたはQUI8タイプまたはTFLiteuint8タイプまたはTFLitequint8タイプ値のテンソル

属性:

結果:

  1. output :32ビットfloatまたは32ビット整数または64ビット整数または8ビット整数またはQI8タイプまたはQI16タイプまたはQUI8タイプまたはTFLiteuint8タイプまたはTFLitequint8タイプ値のテンソル

tfl.max_pool_2d(TFL :: MaxPool2DOp)

最大プール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)

argmaxopを使用した最大プール2D

説明:

入力に対して最大プーリングを実行し、最大値とインデックスの両方を出力します。各インデックスは、「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)

Max Unpool 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)

平均演算子

説明:

テンソルの次元全体の要素の平均を計算します。 axisで指定された次元に沿ってinput_tensorを減らします。 keepdimsが真でない限り、テンソルのランクは軸のエントリごとに1ずつ減少します。 keepdimsがtrueの場合、縮小された次元は長さ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オペレーター。ミラーリングされた値でテンソルをパディングします。

説明:

この操作は、指定したパディングに従って、ミラーリングされた値で入力をパディングします。パディングは、形状[n、2]の整数テンソルです。ここで、nは入力のランクです。入力の各次元Dについて、paddings [D、0]は、その次元の入力の内容の前に追加する値の数を示し、paddings [D、1]は、その次元の入力の内容の後に追加する値の数を示します。

copy_borderがtrue(それぞれfalseの場合)の場合、paddings [D、0]とpaddings [D、1]はどちらもinput.dim_size(D)(またはinput.dim_size(D)-1)以下でなければなりません。

出力の各次元Dのパッドサイズは次のとおりです。

paddings(D、0)+ input.dim_size(D)+ paddings(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未満の境界ボックスは削除されます。境界ボックスは[y1、x1、y2、x2]として提供されます。ここで、(y1、x1)および(y2、x2)はボックスの角の対角線ペアの座標であり、座標は正規化されたものとして提供できます(つまり、間隔[0、1])または絶対。このアルゴリズムは、原点が座標系のどこにあるかに依存せず、より一般的には、座標系の直交変換および平行移動に対して不変であることに注意してください。したがって、座標系の変換または反射により、アルゴリズムによって同じボックスが選択されます。この操作の出力は、選択されたボックスを表すバウンディングボックスの入力コレクションにインデックスを付ける整数のセットです。選択したインデックスに対応するバウンディングボックスの座標は、 tf.gather operationを使用して取得できtf.gather operation 。例:selected_indices = tf.image.non_max_suppression_v2(boxes、scores、max_output_size、iou_threshold、score_threshold)selected_boxes = tf.gather(boxes、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未満の境界ボックスは削除されます。境界ボックスは[y1、x1、y2、x2]として提供されます。ここで、(y1、x1)および(y2、x2)はボックスの角の対角線ペアの座標であり、座標は正規化されたものとして提供できます(つまり、間隔[0、1])または絶対。このアルゴリズムは、原点が座標系のどこにあるかに依存せず、より一般的には、座標系の直交変換および平行移動に対して不変であることに注意してください。したがって、座標系の変換または反射により、アルゴリズムによって同じボックスが選択されます。この操作の出力は、選択されたボックスを表すバウンディングボックスの入力コレクションにインデックスを付ける整数のセットです。選択したインデックスに対応するバウンディングボックスの座標は、 tf.gather operationを使用して取得できtf.gather operation 。例:selected_indices = tf.image.non_max_suppression_v2(boxes、scores、max_output_size、iou_threshold、score_threshold)selected_boxes = tf.gather(boxes、selected_indices)この操作はSoft-NMS(ガウス重み付け付き)モードもサポートします(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)

2つのオペランドの数値を検証します

説明:

NumericVerify操作は、2つのアクティベーションの数値を検証するためのデバッグ操作です。これはTFLiteのカスタム操作です。

オペランド:

  1. input :任意のタイプの値のテンソル
  2. ref :任意のタイプの値のテンソル

属性:

属性MLIRタイプ説明
tolerance FloatAttr 32ビットのfloat属性属性

結果:

tfl.one_hot(TFL :: OneHotOp)

OneHotオペレーター

説明:

ワンホットtensor.The位置が内のインデックスによって表される戻り値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になり、2番目のケースでブロードキャストされます。

オペランド:

  1. input :任意のタイプの値のテンソル
  2. alpha :任意のタイプの値のテンソル

属性:

結果:

  1. output :任意のタイプの値のテンソル

tfl.pack(TFL :: PackOp)

次元に沿ったテンソルのリストを1つのテンソルにパックします

説明:

values_countランクRテンソルのリストを1つのランク- (R+1)テンソルにパックします。

axis次元に沿ってそれらをパックすることにより、 valuesvalues_countテンソルをvalues各テンソルよりもランクが1高いテンソルにパックします。

形状のテンソル(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は、形状[Dn, 2]整数テンソルです。ここで、nはinputのランクです。 input各次元Dについて、 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

説明:

この操作は、指定したpaddingsconstant_valuesに従ってinputpaddingsします。 paddingsは、形状[Dn, 2]整数テンソルです。ここで、nはinputのランクです。 input各次元Dについて、 paddings[D, 0]は、その次元のinputの内容の前に追加するゼロの数を示し、 paddings[D, 1]は、その次元のinputの内容の後に追加するゼロの数を示します。 constant_valuesは、 inputと同じタイプのスカラーテンソルであり、 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