onnx-mlir

Logo

MLIRコンパイラインフラストラクチャにおけるONNXモデルの表現と参照低減

GitHubでプロジェクトを見る onnx/onnx-mlir

ハウツー

Pythonを使用した推論
C/C++を使用した推論
Javaを使用した推論

参考文献

ONNXダイアレクト
OMTensor C99 ランタイムAPI
OMTensorList C99 ランタイムAPI
OMTensor Java ランタイムAPI
OMTensorList Java ランタイムAPI
ONNXダイアレクトの生成
ドキュメントについて

開発

操作の追加
テストガイドライン
エラー処理
コマンドラインオプション
インストルメンテーション
定数伝播
アクセラレータの追加

ツール

ツール

RunONNXModel.py
DocCheck

このプロジェクトはonnxによって管理されています

GitHub Pagesでホスト — テーマ:orderedlist

onnx.Abs (ONNXAbsOp)

ONNX Abs 操作

Absolute は1つの入力データ(Tensor)を受け取り、1つの出力データ(Tensor)を生成します。ここで、絶対値 y = abs(x) がテンソル要素ごとに適用されます。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
X 8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型値のテンソル

結果

結果 説明
Y 8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型値のテンソル

onnx.Acos (ONNXAcosOp)

ONNX Acos 操作

与えられた入力テンソルの逆余弦(コサインの逆関数)を要素ごとに計算します。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
入力 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

結果

結果 説明
出力 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

onnx.Acosh (ONNXAcoshOp)

ONNX Acosh 操作

与えられた入力テンソルの双曲線逆余弦を要素ごとに計算します。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
入力 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

結果

結果 説明
出力 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

onnx.Adagrad (ONNXAdagradOp)

ONNX Adagrad 操作

確率的勾配に基づく最適化アルゴリズムであるADAGRADの1回の反復を計算します。この演算子は複数のテンソル変数の最適化を実行できます。

Let's define the behavior of this operator. As you can imagine, ADAGRAD requires
some parameters:

 - The initial learning-rate \"R\".
 - The update count \"T\". That is, the number of training iterations conducted.
 - A L2-norm regularization coefficient \"norm_coefficient\".
 - A learning-rate decay factor \"decay_factor\".
 - A small constant \"epsilon\" to avoid dividing-by-zero.

At each ADAGRAD iteration, the optimized tensors are moved along a direction
computed based on their estimated gradient and accumulated squared gradient. Assume
that only a single tensor \"X\" is updated by this operator. We need the value of \"X\",
its gradient \"G\", and its accumulated squared gradient \"H\". Therefore, variables in
this operator's input list are sequentially \"R\", \"T\", \"X\", \"G\", and \"H\". Other
parameters are given as attributes because they are usually constants. Also, the
corresponding output tensors are the new value of \"X\" (called \"X_new\"), and then
the new accumulated squared gradient (called \"H_new\"). Those outputs are computed
from the given inputs following the pseudo code below.

Let \"+\", \"-\", \"*\", and \"/\" are all element-wise arithmetic operations with
numpy-style broadcasting support. The pseudo code to compute those outputs is:

  // Compute a scalar learning-rate factor. At the first update of X, T is generally
  // 0 (0-based update index) or 1 (1-based update index).
  r = R / (1 + T * decay_factor);

  // Add gradient of 0.5 * norm_coefficient * ||X||_2^2, where ||X||_2 is the 2-norm.
  G_regularized = norm_coefficient * X + G;

  // Compute new accumulated squared gradient.
  H_new = H + G_regularized * G_regularized;

  // Compute the adaptive part of per-coordinate learning rate. Note that Sqrt(...)
  // computes element-wise square-root.
  H_adaptive = Sqrt(H_new) + epsilon

  // Compute the new value of \"X\".
  X_new = X - r * G_regularized / H_adaptive;

If one assign this operators to optimize multiple inputs, for example, \"X_1\" and \"X_2\", the same
pseudo code may be extended to handle all tensors jointly. More specifically, we can view \"X\" as a
concatenation of \"X_1\" and \"X_2\" (of course, their gradient and accumulate gradient should
be concatenated too) and then just reuse the entire pseudo code.

Note that ADAGRAD was first proposed in http://jmlr.org/papers/volume12/duchi11a/duchi11a.pdf.
In that reference paper, this operator is a special case of the Figure 1's composite mirror
descent update.

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
decay_factor::mlir::FloatAttr32ビット浮動小数点属性
epsilon::mlir::FloatAttr32ビット浮動小数点属性
norm_coefficient::mlir::FloatAttr32ビット浮動小数点属性

オペランド

オペランド 説明
R 32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル
T 64ビット符号なし整数値のテンソル
入力 可変長の32ビット浮動小数点値のテンソルまたは64ビット浮動小数点値のテンソル

結果

結果 説明
出力 可変長の32ビット浮動小数点値のテンソルまたは64ビット浮動小数点値のテンソル

onnx.Adam (ONNXAdamOp)

ONNX Adam 操作

確率的勾配に基づく最適化アルゴリズムであるAdamの1回の反復を計算します。この演算子は複数のテンソル変数の最適化を実行できます。

Let's define the behavior of this operator. First of all, Adam requires
some parameters:

 - The learning-rate \"R\".
 - The update count \"T\". That is, the number of training iterations conducted.
 - A L2-norm regularization coefficient \"norm_coefficient\".
 - A small constant \"epsilon\" to avoid dividing-by-zero.
 - Two coefficients, \"alpha\" and \"beta\".

At each Adam iteration, the optimized tensors are moved along a direction
computed based on their exponentially-averaged historical gradient and
exponentially-averaged historical squared gradient. Assume that only a tensor
\"X\" is being optimized. The rest of required information is

 - the value of \"X\",
 - \"X\"'s gradient (denoted by \"G\"),
 - \"X\"'s exponentially-averaged historical gradient (denoted by \"V\"), and
 - \"X\"'s exponentially-averaged historical squared gradient (denoted by \"H\").

Some of those parameters are passed into this operator as input tensors and others
are stored as this operator's attributes. Specifically, this operator's input tensor
list is [\"R\", \"T\", \"X\", \"G\", \"V\", \"H\"]. That is, \"R\" is the first input, \"T\" is
the second input, and so on. Other parameters are given as attributes because they
are constants. Moreover, the corresponding output tensors are

 - the new value of \"X\" (called \"X_new\"),
 - the new exponentially-averaged historical gradient (denoted by \"V_new\"), and
 - the new exponentially-averaged historical squared gradient (denoted by \"H_new\").

Those outputs are computed following the pseudo code below.

Let \"+\", \"-\", \"*\", and \"/\" are all element-wise arithmetic operations with
numpy-style broadcasting support. The pseudo code to compute those outputs is:

  // Add gradient of 0.5 * norm_coefficient * ||X||_2^2, where ||X||_2 is the 2-norm.
  G_regularized = norm_coefficient * X + G

  // Update exponentially-averaged historical gradient.
  V_new = alpha * V + (1 - alpha) * G_regularized

  // Update exponentially-averaged historical squared gradient.
  H_new = beta * H + (1 - beta) * G_regularized * G_regularized

  // Compute the element-wise square-root of H_new. V_new will be element-wisely
  // divided by H_sqrt for a better update direction.
  H_sqrt = Sqrt(H_new) + epsilon

  // Compute learning-rate. Note that \"alpha**T\"/\"beta**T\" is alpha's/beta's T-th power.
  R_adjusted = T > 0 ? R * Sqrt(1 - beta**T) / (1 - alpha**T) : R

  // Compute new value of \"X\".
  X_new = X - R_adjusted * V_new / H_sqrt

  // Post-update regularization.
  X_final = (1 - norm_coefficient_post) * X_new

If there are multiple inputs to be optimized, the pseudo code will be applied
independently to each of them.

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
alpha::mlir::FloatAttr32ビット浮動小数点属性
beta::mlir::FloatAttr32ビット浮動小数点属性
epsilon::mlir::FloatAttr32ビット浮動小数点属性
norm_coefficient::mlir::FloatAttr32ビット浮動小数点属性
norm_coefficient_post::mlir::FloatAttr32ビット浮動小数点属性

オペランド

オペランド 説明
R 32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル
T 64ビット符号なし整数値のテンソル
入力 可変長の32ビット浮動小数点値のテンソルまたは64ビット浮動小数点値のテンソル

結果

結果 説明
出力 可変長の32ビット浮動小数点値のテンソルまたは64ビット浮動小数点値のテンソル

onnx.Add (ONNXAddOp)

ONNX Add 操作

要素ごとの二項加算(NumPyスタイルのブロードキャストサポート付き)を実行します。

この演算子は、多方向(つまり、NumPyスタイル)のブロードキャストをサポートしています。詳細については、ドキュメントを参照してください。

(Opset 14 の変更):uint8、int8、uint16、および int16 を含むようにサポートされる型を拡張しました。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
A 8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型値のテンソル
B 8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型値のテンソル

結果

結果 説明
C 8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型値のテンソル

onnx.And (ONNXAndOp)

ONNX And 操作

入力テンソル A および B に対して要素ごとに and 論理演算を実行した結果のテンソルを返します(NumPyスタイルのブロードキャストサポート付き)。

この演算子は、多方向(つまり、NumPyスタイル)のブロードキャストをサポートしています。詳細については、ドキュメントを参照してください。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
A 1ビット符号なし整数値のテンソル
B 1ビット符号なし整数値のテンソル

結果

結果 説明
C 1ビット符号なし整数値のテンソル

onnx.ArgMax (ONNXArgMaxOp)

ONNX ArgMax 操作

指定された軸に沿った入力テンソルの要素の最大要素のインデックスを計算します。keepdims が 1 の場合、結果のテンソルは入力と同じランクを持ちます。keepdims が 0 の場合、結果のテンソルは縮小された次元が削除されます。select_last_index が True(デフォルトは False)の場合、最大値が入力に複数回出現する場合は、最大値の最後の出現のインデックスが選択されます。それ以外の場合は、最初の出現のインデックスが選択されます。出力テンソルの型は整数です。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
axis::mlir::IntegerAttr64ビット符号付き整数属性
keepdims::mlir::IntegerAttr64ビット符号付き整数属性
select_last_index::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
data 8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型値のテンソル

結果

結果 説明
reduced 64ビット符号なし整数値のテンソル

onnx.ArgMin (ONNXArgMinOp)

ONNX ArgMin 操作

指定された軸に沿った入力テンソルの要素の最小要素のインデックスを計算します。keepdims が 1 の場合、結果のテンソルは入力と同じランクを持ちます。keepdims が 0 の場合、結果のテンソルは縮小された次元が削除されます。select_last_index が True(デフォルトは False)の場合、最小値が入力に複数回出現する場合は、最小値の最後の出現のインデックスが選択されます。それ以外の場合は、最初の出現のインデックスが選択されます。出力テンソルの型は整数です。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
axis::mlir::IntegerAttr64ビット符号付き整数属性
keepdims::mlir::IntegerAttr64ビット符号付き整数属性
select_last_index::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
data 8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型値のテンソル

結果

結果 説明
reduced 64ビット符号なし整数値のテンソル

onnx.ArrayFeatureExtractor (ONNXArrayFeatureExtractorOp)

ONNX ArrayFeatureExtractor 操作

渡されたインデックスに基づいて入力テンソルの要素を選択します。
インデックスはテンソルの最後の軸に適用されます。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
X 32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、または64ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または文字列型値のテンソル
Y 64ビット符号なし整数値のテンソル

結果

結果 説明
Z 32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、または64ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または文字列型値のテンソル

onnx.Asin (ONNXAsinOp)

ONNX Asin 操作

与えられた入力テンソルの正弦(サインの逆関数)を要素ごとに計算します。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
入力 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

結果

結果 説明
出力 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

onnx.Asinh (ONNXAsinhOp)

ONNX Asinh 操作

与えられた入力テンソルの双曲線正弦を要素ごとに計算します。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
入力 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

結果

結果 説明
出力 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

onnx.Atan (ONNXAtanOp)

ONNX Atan 操作

与えられた入力テンソルの逆正接(タンジェントの逆関数)を要素ごとに計算します。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
入力 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

結果

結果 説明
出力 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

onnx.Atanh (ONNXAtanhOp)

ONNX Atanh 操作

与えられた入力テンソルの双曲線逆正接を要素ごとに計算します。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
入力 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

結果

結果 説明
出力 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

onnx.AveragePool (ONNXAveragePoolOp)

ONNX AveragePool 操作

AveragePool は入力テンソル X を消費し、カーネルサイズ、ストライドサイズ、およびパディング長に従ってテンソル全体に平均プーリングを適用します。平均プーリングは、カーネルサイズに従って入力テンソルのサブセットのすべての値の平均を計算し、さらなる処理のためにデータを出力テンソル Y にダウンサンプリングすることで構成されます。出力空間形状は、明示的なパディングが使用される場合(パッドが使用される場合)、または自動パディングが使用される場合(auto_pad が利用される場合)によって計算方法が異なります。明示的なパディングを使用する場合(https://pytorch.org/docs/stable/generated/torch.nn.MaxPool2d.html?highlight=maxpool#torch.nn.MaxPool2d)

 output_spatial_shape[i] = floor((input_spatial_shape[i] + pad_shape[i] - dilation[i] * (kernel_shape[i] - 1) - 1) / strides_spatial_shape[i] + 1)

または

 output_spatial_shape[i] = ceil((input_spatial_shape[i] + pad_shape[i] - dilation[i] * (kernel_shape[i] - 1) - 1) / strides_spatial_shape[i] + 1)

ceil_mode が有効になっている場合。pad_shape[i] は、軸 i に沿ったパッドの合計です。

auto_pad は非推奨の属性です。現在使用している場合、ceil_mode が有効になっている場合、出力空間形状は次のようになります。

 VALID: output_spatial_shape[i] = ceil((input_spatial_shape[i] - ((kernel_spatial_shape[i] - 1) * dilations[i] + 1) + 1) / strides_spatial_shape[i])
 SAME_UPPER or SAME_LOWER: output_spatial_shape[i] = ceil(input_spatial_shape[i] / strides_spatial_shape[i])

または、ceil_mode が無効になっている場合(https://www.tensorflow.org/api_docs/python/tf/keras/layers/AveragePooling2D)

 VALID: output_spatial_shape[i] = floor((input_spatial_shape[i] - ((kernel_spatial_shape[i] - 1) * dilations[i] + 1)) / strides_spatial_shape[i]) + 1
 SAME_UPPER or SAME_LOWER: output_spatial_shape[i] = floor((input_spatial_shape[i] - 1) / strides_spatial_shape[i]) + 1

また、SAME_UPPER または SAME_LOWER の場合、パッド形状は次のようになります。

 pad_shape[i] = (output_spatial_shape[i] - 1) * strides_spatial_shape[i] + ((kernel_spatial_shape[i] - 1) * dilations[i] + 1) - input_spatial_shape[i]

各プーリングウィンドウの出力は、要素数で除算されます(属性 count_include_pad がゼロの場合は、パッドを除外)。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
auto_pad::mlir::StringAttr文字列属性
ceil_mode::mlir::IntegerAttr64ビット符号付き整数属性
count_include_pad::mlir::IntegerAttr64ビット符号付き整数属性
dilations::mlir::ArrayAttr64ビット整数配列属性
kernel_shape::mlir::ArrayAttr64ビット整数配列属性
pads::mlir::ArrayAttr64ビット整数配列属性
strides::mlir::ArrayAttr64ビット整数配列属性

オペランド

オペランド 説明
X 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

結果

結果 説明
Y 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

onnx.BatchNormalizationInferenceMode (ONNXBatchNormalizationInferenceModeOp)

テストモードでの ONNX BatchNormalization 操作

論文 https://arxiv.org/abs/1502.03167 で説明されているように、バッチ正規化を実行します。実行されるモードに応じて、出力の数には複数のケースがあり、以下にリストします。

出力ケース#1:Y、mean、var、saved_mean、saved_var(トレーニングモード)出力ケース#2:Y(テストモード)

以前(非推奨)の非空間ケースでは、実装者は、BatchNormalization 演算の前に、入力形状を (N x CD1D2 ..*Dn) に平坦化することをお勧めします。この演算には、オプションの入力/出力があります。オプションの引数の表現の詳細については、ドキュメントを参照してください。実際の引数の名前の代わりに空の文字列を使用して、引数が欠落していることを示すことができます。末尾のオプションの引数(存在する引数が後に続かない引数)は、単純に省略することもできます。

この操作は標準の一部ではなく、onnx-mlir を支援するために追加されました。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
epsilon::mlir::FloatAttr32ビット浮動小数点属性
momentum::mlir::FloatAttr32ビット浮動小数点属性

オペランド

オペランド 説明
X 任意の型値の memref または任意の型値のテンソル
scale 任意の型値の memref または任意の型値のテンソル
B 任意の型値の memref または任意の型値のテンソル
mean 任意の型値の memref または任意の型値のテンソル
var 任意の型値の memref または任意の型値のテンソル

結果

結果 説明
o_Y 任意の型値の memref または任意の型値のテンソル

onnx.BatchNormalization (ONNXBatchNormalizationOp)

ONNX BatchNormalization 操作

論文 https://arxiv.org/abs/1502.03167 で説明されているように、バッチ正規化を実行します。実行されているモードに応じて、5つの必須入力 'X'、'scale'、'B'、'input_mean'、および 'input_var' があります。'input_mean' および 'input_var' は、推論モード(training_mode=False、デフォルト)では推定された統計量、トレーニングモード(training_mode=True)では実行中の統計量になることが期待されることに注意してください。出力の数には複数のケースがあり、以下にリストします。

training_mode=False の場合、追加の出力は無効です。training_mode=True の場合、出力は次のように更新されます。

running_mean = input_mean * momentum + current_mean * (1 - momentum)
running_var = input_var * momentum + current_var * (1 - momentum)

Y = (X - current_mean) / sqrt(current_var + epsilon) * scale + B

ここで

current_mean = ReduceMean(X, axis=all_except_channel_index)
current_var =  ReduceVar(X, axis=all_except_channel_index)

ReduceVar は母分散を指し、sum(sqrd(x_i - x_avg)) / N に等しくなります。ここで、N は母集団サイズです(この式ではサンプルサイズ N - 1 を使用していません)。

ReduceMean および ReduceVar の計算では、float16 入力でのオーバーフローを避けるために float が使用されます。

training_mode=False の場合

Y = (X - input_mean) / sqrt(input_var + epsilon) * scale + B

以前の(非推奨の)非空間的なケースでは、BatchNormalization Op の前に、入力形状を (N x C * D1 * D2 * … * Dn) に平坦化することが推奨されます。この演算子はオプションの入力/出力を持ちます。オプション引数の表現の詳細については、ドキュメントを参照してください。引数が欠落していることを示すために、実際の引数の名前の代わりに空の文字列を使用できます。後続のオプション引数(存在する引数が後に続かないもの)も、単に省略できます。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
epsilon::mlir::FloatAttr32ビット浮動小数点属性
momentum::mlir::FloatAttr32ビット浮動小数点属性
training_mode::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
X 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型の値のテンソル
scale 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型の値のテンソル
B 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型の値のテンソル
input_mean 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型の値のテンソル
input_var 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型の値のテンソル

結果

結果 説明
Y 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型の値のテンソル
running_mean 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型の値のテンソル、またはNone型
running_var 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型の値のテンソル、またはNone型

onnx.Bernoulli (ONNXBernoulliOp)

ONNX Bernoulli 演算

ベルヌーイ分布から二項乱数(0または1)を生成します。入力テンソルは、二項乱数を生成するために使用される確率p([0,1]の範囲の値)を含むテンソルである必要があります。出力が1になる確率はpであり、出力が0になる確率は(1-p)です。

この演算子は非決定的であり、(シードが指定された場合でも)異なる実装で同じ値を生成しない可能性があります。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
dtype::mlir::IntegerAttr64ビット符号付き整数属性
seed::mlir::FloatAttr32ビット浮動小数点属性

オペランド

オペランド 説明
入力 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

結果

結果 説明
出力 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型の値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または1ビット符号なし整数値のテンソル

onnx.Binarizer (ONNXBinarizerOp)

ONNX Binarizer 演算

入力テンソルの値を、しきい値との比較結果に基づいて、要素ごとに0または1にマッピングします。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
threshold::mlir::FloatAttr32ビット浮動小数点属性

オペランド

オペランド 説明
X 32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、または64ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル

結果

結果 説明
Y 32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、または64ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル

onnx.BitShift (ONNXBitShiftOp)

ONNX BitShift 演算

ビット単位のシフト演算は、要素ごとに演算を実行します。入力要素ごとに、属性 "direction" が "RIGHT" の場合、この演算子はバイナリ表現を右側に移動し、入力値が実質的に減少するようにします。属性 "direction" が "LEFT" の場合、バイナリ表現のビットは左側に移動し、その実際の値が増加します。入力 X はシフトされるテンソルであり、別の入力 Y はシフト量を指定します。たとえば、"direction" が "Right" で、X が [1, 4] で、S が [1, 1] の場合、対応する出力 Z は [0, 2] になります。"direction" が "LEFT" で X=[1, 2]、S=[1, 2] の場合、対応する出力 Y は [2, 8] になります。

この演算子は NumPy スタイルのブロードキャストをサポートしているため、X と Y の形状が必ずしも同一である必要はありません。この演算子は多方向(つまり、NumPy スタイル)ブロードキャストをサポートしています。詳細については、ドキュメントを確認してください。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
direction::mlir::StringAttr文字列属性

オペランド

オペランド 説明
X 8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル
Y 8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル

結果

結果 説明
Z 8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル

onnx.BitwiseAnd (ONNXBitwiseAndOp)

ONNX BitwiseAnd 演算

入力テンソル AB に対して、要素ごとにビット単位の and 演算を実行した結果のテンソルを返します(NumPy スタイルのブロードキャストをサポート)。

この演算子は、多方向(つまり、NumPyスタイル)のブロードキャストをサポートしています。詳細については、ドキュメントを参照してください。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
A 8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル
B 8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル

結果

結果 説明
C 8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル

onnx.BitwiseNot (ONNXBitwiseNotOp)

ONNX BitwiseNot 演算

入力テンソルのビット単位の否定を要素ごとに返します。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
X 8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル

結果

結果 説明
Y 8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル

onnx.BitwiseOr (ONNXBitwiseOrOp)

ONNX BitwiseOr 演算

入力テンソル AB に対して、要素ごとにビット単位の or 演算を実行した結果のテンソルを返します(NumPy スタイルのブロードキャストをサポート)。

この演算子は、多方向(つまり、NumPyスタイル)のブロードキャストをサポートしています。詳細については、ドキュメントを参照してください。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
A 8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル
B 8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル

結果

結果 説明
C 8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル

onnx.BitwiseXor (ONNXBitwiseXorOp)

ONNX BitwiseXor 演算

入力テンソル AB に対して、要素ごとにビット単位の xor 演算を実行した結果のテンソルを返します(NumPy スタイルのブロードキャストをサポート)。

この演算子は、多方向(つまり、NumPyスタイル)のブロードキャストをサポートしています。詳細については、ドキュメントを参照してください。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
A 8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル
B 8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル

結果

結果 説明
C 8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル

onnx.BlackmanWindow (ONNXBlackmanWindowOp)

ONNX BlackmanWindow 演算

論文 https://ieeexplore.ieee.org/document/1455106 で説明されている Blackman ウィンドウを生成します。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
output_datatype::mlir::IntegerAttr64ビット符号付き整数属性
periodic::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
size 32ビット符号なし整数値のテンソルまたは64ビット符号なし整数値のテンソル

結果

結果 説明
出力 8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型値のテンソル

onnx.CastLike (ONNXCastLikeOp)

ONNX CastLike 演算

この演算子は、指定された入力テンソル(最初の入力)の要素を、2番目の入力テンソルの要素と同じデータ型にキャストします。詳細については、Cast 演算子のドキュメントを参照してください。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
saturate::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
入力 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または1ビット符号なし整数値のテンソル、または文字列型の値のテンソル、またはbfloat16型の値のテンソル、またはf8E4M3FN型の値のテンソル、またはf8E4M3FNUZ型の値のテンソル、またはf8E5M2型の値のテンソル、またはf8E5M2FNUZ型の値のテンソル
target_type 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または1ビット符号なし整数値のテンソル、または文字列型の値のテンソル、またはbfloat16型の値のテンソル、またはf8E4M3FN型の値のテンソル、またはf8E4M3FNUZ型の値のテンソル、またはf8E5M2型の値のテンソル、またはf8E5M2FNUZ型の値のテンソル

結果

結果 説明
出力 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または1ビット符号なし整数値のテンソル、または文字列型の値のテンソル、またはbfloat16型の値のテンソル、またはf8E4M3FN型の値のテンソル、またはf8E4M3FNUZ型の値のテンソル、またはf8E5M2型の値のテンソル、またはf8E5M2FNUZ型の値のテンソル

onnx.CastMap (ONNXCastMapOp)

ONNX CastMap 演算

マップをテンソルに変換します。
マップキーは int64 である必要があり、値はこのキーに基づいて昇順に並べられます。
この演算子は、密なパッキングまたは疎なパッキングをサポートしています。疎なパッキングを使用する場合、キーは max_map-1 値を超えることはできません。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
cast_to::mlir::StringAttr文字列属性
map_form::mlir::StringAttr文字列属性
max_map::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
X 64ビット符号なし整数または文字列型の値の任意の組み合わせを含むタプル、または64ビット符号なし整数または32ビット浮動小数点値の任意の組み合わせを含むタプル

結果

結果 説明
Y 文字列型の値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット符号なし整数値のテンソル

onnx.Cast (ONNXCastOp)

ONNX Cast 演算

この演算子は、指定された入力テンソルの要素を、「to」引数で指定されたデータ型にキャストし、変換された型で同じサイズの出力テンソルを返します。「to」引数は、TensorProtoメッセージの「DataType」列挙フィールドで指定されたデータ型のいずれかである必要があります。

プレーン(例:「3.14」および「1000」)および科学的な数値表現(例:「1e-5」および「1E8」)の文字列テンソルから浮動小数点型へのキャストがサポートされています。たとえば、文字列「100.5」を整数に変換すると、結果100が得られる場合があります。特別な浮動小数点値用に予約された文字列リテラルがいくつかあります。「+INF」(および「INF」)、「-INF」、「NaN」は、それぞれ正の無限大、負の無限大、および非数です。大文字と小文字を区別しない方法で「+INF」に完全に一致する可能性のある文字列は、正の無限大にマッピングされます。同様に、この大文字と小文字を区別しないルールが「INF」および「NaN」に適用されます。数値テンソルから文字列テンソルにキャストする場合、プレーンな浮動小数点表現(「314.15926」など)が使用されます。「Hello World!」のような非数値リテラルの文字列を変換することは、未定義の動作です。「2.718」のような浮動小数点演算値を表す文字列をINTに変換する場合は、未定義の動作です。

数値型から任意の数値型への変換は常に許可されています。ユーザーは、2つの型間の範囲の違いによって引き起こされる精度の低下と値の変化を認識している必要があります。たとえば、64ビット浮動小数点数 3.1415926459 は、32ビット浮動小数点数 3.141592 に丸められる場合があります。同様に、整数 36 をブール値に変換すると、ターゲット型に格納できないビットが切り捨てられるため、1 が生成される場合があります。

より詳細には、宛先型がfloat 8型でない場合、数値型間の変換は次のルールに従う必要があります。

Float 8 型は、深層モデルのトレーニングを高速化するために導入されました。デフォルトでは、浮動小数点数 *x* の変換は、次の規則に従います。 [x] は、ターゲットの仮数部の幅に丸められた値を意味します。

x E4M3FN E4M3FNUZ E5M2 E5M2FNUZ
0 0 0 0 0
-0 -0 0 -0 0
NaN NaN NaN NaN NaN
+/- Inf +/- FLT_MAX NaN FLT_MAX NaN
[x] > FLT_MAX FLT_MAX FLT_MAX FLT_MAX FLT_MAX
[x] < -FLT_MAX -FLT_MAX -FLT_MAX -FLT_MAX -FLT_MAX
その他 RNE RNE RNE RNE

パラメータ ‘saturate’ が False に設定されている場合、動作が変更されます。その場合、ルールは次のようになります。

x E4M3FN E4M3FNUZ E5M2 E5M2FNUZ
0 0 0 0 0
-0 -0 0 -0 0
NaN NaN NaN NaN NaN
+/- Inf NaN NaN +/- Inf NaN
[x] > FLT_MAX NaN NaN Inf NaN
[x] < -FLT_MAX NaN NaN -Inf NaN
その他 RNE RNE RNE RNE

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ResultTypeInferenceOpInterface, ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
saturate::mlir::IntegerAttr64ビット符号付き整数属性
から::mlir::TypeAttr任意の型属性

オペランド

オペランド 説明
入力 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または1ビット符号なし整数値のテンソル、または文字列型の値のテンソル、またはbfloat16型の値のテンソル、またはf8E4M3FN型の値のテンソル、またはf8E4M3FNUZ型の値のテンソル、またはf8E5M2型の値のテンソル、またはf8E5M2FNUZ型の値のテンソル

結果

結果 説明
出力 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または1ビット符号なし整数値のテンソル、または文字列型の値のテンソル、またはbfloat16型の値のテンソル、またはf8E4M3FN型の値のテンソル、またはf8E4M3FNUZ型の値のテンソル、またはf8E5M2型の値のテンソル、またはf8E5M2FNUZ型の値のテンソル

onnx.CategoryMapper (ONNXCategoryMapperOp)

ONNX CategoryMapper 操作

文字列と整数を相互に変換します。
同じ長さの2つのシーケンスを使用して整数と文字列間のマッピングを行います。同じインデックスにある文字列と整数がマッピングの詳細を示します。
各演算子は、どちらのデフォルト値属性が指定されているかに応じて、整数を文字列に変換するか、文字列を整数に変換します。デフォルト値属性は1つのみ定義する必要があります。
文字列のデフォルト値が設定されている場合は、整数を文字列に変換します。整数のデフォルト値が設定されている場合は、文字列を整数に変換します。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
cats_int64s::mlir::ArrayAttr64ビット整数配列属性
cats_strings::mlir::ArrayAttr文字列配列属性
default_int64::mlir::IntegerAttr64ビット符号付き整数属性
default_string::mlir::StringAttr文字列属性

オペランド

オペランド 説明
X 文字列型の値のテンソルまたは64ビット符号なし整数値のテンソル

結果

結果 説明
Y 文字列型の値のテンソルまたは64ビット符号なし整数値のテンソル

onnx.Ceil (ONNXCeilOp)

ONNX Ceil 操作

Ceil は 1 つの入力データ (テンソル)を受け取り、1つの出力データ(Tensor) を受け取り、要素ごとに天井関数 (y = ceil(x)) が適用されます。x が整数、+0、-0、NaN、または無限大の場合、x 自体が返されます。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
X 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型の値のテンソル

結果

結果 説明
Y 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型の値のテンソル

onnx.Celu (ONNXCeluOp)

ONNX Celu 操作

連続微分可能な指数線形ユニット:式を使用して、入力テンソル X に対して要素ごとに線形ユニットを実行します。

max(0,x) + min(0,alpha*(exp(x/alpha)-1))

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
alpha::mlir::FloatAttr32ビット浮動小数点属性

オペランド

オペランド 説明
X 32ビット浮動小数点値のテンソル

結果

結果 説明
Y 32ビット浮動小数点値のテンソル

onnx.CenterCropPad (ONNXCenterCropPadOp)

ONNX CenterCropPad 操作

入力を指定された次元で中央クロップまたはパディングします。

クロップ/パディングの次元は、axes のサブセットに対して指定できます。指定されていない次元は、クロップまたはパディングされません。

入力次元がクロップ形状よりも大きい場合、入力から中央クロップウィンドウが抽出されます。入力次元がクロップ形状よりも小さい場合、入力は各辺で均等にパディングされるため、入力が出力の中央に配置されます。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
axes::mlir::ArrayAttr64ビット整数配列属性

オペランド

オペランド 説明
input_data 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、bfloat16型の値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル
shape 32ビット符号なし整数値のテンソルまたは64ビット符号なし整数値のテンソル

結果

結果 説明
output_data 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、bfloat16型の値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル

onnx.Clip (ONNXClipOp)

ONNX Clip 操作

Clip 演算子は、指定された入力を区間内に制限します。この区間は、入力 ‘min’ と ‘max’ で指定されます。これらはそれぞれ、numeric_limits::lowest() と numeric_limits::max() がデフォルト値となります。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
入力 8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型値のテンソル
min 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、bfloat16型の値のテンソル、または none 型
max 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、bfloat16型の値のテンソル、または none 型

結果

結果 説明
出力 8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型値のテンソル

onnx.ClipV11 (ONNXClipV11Op)

ONNX Clip 操作

Clip 演算子は、指定された入力を区間内に制限します。この区間は、入力 ‘min’ と ‘max’ で指定されます。これらはそれぞれ、numeric_limits::lowest() と numeric_limits::max() がデフォルト値となります。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
入力 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル
min 16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、または none 型
max 16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、または none 型

結果

結果 説明
出力 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

onnx.ClipV12 (ONNXClipV12Op)

ONNX Clip 操作

Clip 演算子は、指定された入力を区間内に制限します。この区間は、入力 ‘min’ と ‘max’ で指定されます。これらはそれぞれ、numeric_limits::lowest() と numeric_limits::max() がデフォルト値となります。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
入力 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル
min 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、または none 型
max 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、または none 型

結果

結果 説明
出力 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

onnx.ClipV6 (ONNXClipV6Op)

ONNX Clip 操作

Clip 演算子は、指定された入力を区間内に制限します。この区間は、引数 ‘min’ と ‘max’ で指定されます。これらはそれぞれ、numeric_limits::lowest() と numeric_limits::max() がデフォルト値となります。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
max::mlir::FloatAttr32ビット浮動小数点属性
min::mlir::FloatAttr32ビット浮動小数点属性

オペランド

オペランド 説明
入力 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

結果

結果 説明
出力 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

onnx.Col2Im (ONNXCol2ImOp)

ONNX Col2Im 操作

演算子は、列ブロックを多次元画像に戻します。

Col2Im は、PyTorch の fold (https://pytorch.org/docs/stable/generated/torch.nn.Fold.html) と同様の動作をしますが、バッチ処理された多次元画像テンソルのみをサポートします。N 次元サポートを備えた Python での実装は、https://github.com/f-dangel/unfoldNd/ で見つけることができます。

注: convolution 式から計算できるため、image_shape の指定は冗長に見えるかもしれませんが、PyTorch の実装 (https://github.com/pytorch/pytorch/blob/master/aten/src/ATen/native/Col2Im.cpp#L10) で説明されているように、より高度なシナリオでは入力として必須です。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
dilations::mlir::ArrayAttr64ビット整数配列属性
pads::mlir::ArrayAttr64ビット整数配列属性
strides::mlir::ArrayAttr64ビット整数配列属性

オペランド

オペランド 説明
入力 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、bfloat16型の値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル
image_shape 64ビット符号なし整数値のテンソル
block_shape 64ビット符号なし整数値のテンソル

結果

結果 説明
出力 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、bfloat16型の値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル

onnx.Compress (ONNXCompressOp)

ONNX Compress 操作

指定された軸に沿って、各軸インデックスに対して条件が True と評価される入力テンソルからスライスを選択します。軸が指定されていない場合、要素が選択される前に入力が平坦化されます。Compress は numpy.compress と同様の動作をします: https://docs.scipy.org/doc/numpy/reference/generated/numpy.compress.html

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
axis::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
入力 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル
condition 1ビット符号なし整数値のテンソル

結果

結果 説明
出力 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル

onnx.ConcatFromSequence (ONNXConcatFromSequenceOp)

ONNX ConcatFromSequence 操作

テンソルのシーケンスを単一のテンソルに連結します。すべての入力テンソルは、連結する軸の次元サイズを除いて、同じ形状である必要があります。デフォルトでは ‘new_axis’ は 0 であり、numpy.concatenate と同様の動作をします。‘new_axis’ が 1 の場合、numpy.stack と同様の動作をします。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
axis::mlir::IntegerAttr64ビット符号付き整数属性
new_axis::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
input_sequence 8ビット符号なし整数値のテンソルの SeqType 値、16ビット符号なし整数値のテンソルの SeqType 値、32ビット符号なし整数値のテンソルの SeqType 値、64ビット符号なし整数値のテンソルの SeqType 値、8ビット符号付き整数値のテンソルの SeqType 値、16ビット符号付き整数値のテンソルの SeqType 値、32ビット符号付き整数値のテンソルの SeqType 値、64ビット符号付き整数値のテンソルの SeqType 値、16ビット浮動小数点値のテンソルの SeqType 値、32ビット浮動小数点値のテンソルの SeqType 値、64ビット浮動小数点値のテンソルの SeqType 値、文字列型の値のテンソルの SeqType 値、1ビット符号なし整数値のテンソルの SeqType 値、32ビット浮動小数点要素を持つ複素数型のテンソルの SeqType 値、または64ビット浮動小数点要素を持つ複素数型のテンソルの SeqType 値

結果

結果 説明
concat_result 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル

onnx.Concat (ONNXConcatOp)

ONNX Concat 操作

テンソルのリストを単一のテンソルに連結します。すべての入力テンソルは、連結する軸の次元サイズを除いて、同じ形状である必要があります。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
axis::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
入力 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、bfloat16型の値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソルの可変個引数

結果

結果 説明
concat_result 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、bfloat16型の値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル

onnx.ConcatShapeTranspose (ONNXConcatShapeTransposeOp)

ONNX マージされた操作

次の操作シーケンスを 1 つの操作にマージします。v1 = onnx.concat v2 = onnx.shape(v1) v3 = onnx.transpose(v1)

この操作は標準の一部ではなく、onnx-mlir を支援するために追加されました。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
axis::mlir::IntegerAttr64ビット符号付き整数属性
end::mlir::IntegerAttr64ビット符号付き整数属性
start::mlir::IntegerAttr64ビット符号付き整数属性
perm::mlir::ArrayAttr64ビット整数配列属性

オペランド

オペランド 説明
入力 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、bfloat16型の値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソルの可変個引数

結果

結果 説明
shape 64ビット符号なし整数値のテンソル
transposed 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、bfloat16型の値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル

onnx.ConstantOfShape (ONNXConstantOfShapeOp)

ONNX ConstantOfShape 操作

指定された値と形状でテンソルを生成します。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ResultTypeInferenceOpInterface, ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
value::mlir::Attribute任意の属性

オペランド

オペランド 説明
入力 64ビット符号なし整数値のテンソル

結果

結果 説明
出力 16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、1ビット符号なし整数値のテンソル、bfloat16型の値のテンソル、f8E4M3FN型の値のテンソル、f8E4M3FNUZ型の値のテンソル、f8E5M2型の値のテンソル、またはf8E5M2FNUZ型の値のテンソル

onnx.Constant (ONNXConstantOp)

ONNX Constant 操作

この演算子は定数テンソルを生成します。指定された属性のうち、value、sparse_value、または value_* のいずれか 1 つだけを指定する必要があります。

特徴: AlwaysSpeculatableImplTrait, ConstantLike

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ResultTypeInferenceOpInterface, ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
sparse_value::mlir::Attribute任意の属性
value::mlir::Attribute任意の属性
value_float::mlir::FloatAttr32ビット浮動小数点属性
value_floats::mlir::ArrayAttr32ビット浮動小数点配列属性
value_int::mlir::IntegerAttr64ビット符号付き整数属性
value_ints::mlir::ArrayAttr64ビット整数配列属性
value_string::mlir::StringAttr文字列属性
value_strings::mlir::ArrayAttr文字列配列属性

結果

結果 説明
出力 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、bfloat16型値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型値のテンソル、64ビット浮動小数点要素を持つ複素数型値のテンソル、f8E4M3FN型値のテンソル、f8E4M3FNUZ型値のテンソル、f8E5M2型値のテンソル、f8E5M2FNUZ型値のテンソル

onnx.ConvInteger (ONNXConvIntegerOp)

ONNX ConvInteger 演算

整数畳み込み演算子は、入力テンソル、そのゼロ点、フィルター、およびそのゼロ点を消費し、出力を計算します。積は決してオーバーフローしてはなりません。累積は、32ビットの場合にのみオーバーフローする可能性があります。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
auto_pad::mlir::StringAttr文字列属性
dilations::mlir::ArrayAttr64ビット整数配列属性
グループ::mlir::IntegerAttr64ビット符号付き整数属性
kernel_shape::mlir::ArrayAttr64ビット整数配列属性
pads::mlir::ArrayAttr64ビット整数配列属性
strides::mlir::ArrayAttr64ビット整数配列属性

オペランド

オペランド 説明
x 8ビット符号なし整数値のテンソルまたは8ビット符号なし整数値のテンソル
w 8ビット符号なし整数値のテンソルまたは8ビット符号なし整数値のテンソル
x_zero_point 8ビット符号なし整数値のテンソル、8ビット符号なし整数値のテンソル、または none 型
w_zero_point 8ビット符号なし整数値のテンソル、8ビット符号なし整数値のテンソル、または none 型

結果

結果 説明
y 32ビット符号なし整数値のテンソル

onnx.Conv (ONNXConvOp)

ONNX Conv 演算

畳み込み演算子は、入力テンソルとフィルターを消費し、出力を計算します。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
auto_pad::mlir::StringAttr文字列属性
dilations::mlir::ArrayAttr64ビット整数配列属性
グループ::mlir::IntegerAttr64ビット符号付き整数属性
kernel_shape::mlir::ArrayAttr64ビット整数配列属性
pads::mlir::ArrayAttr64ビット整数配列属性
strides::mlir::ArrayAttr64ビット整数配列属性

オペランド

オペランド 説明
X 16ビット浮動小数点値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル
W 16ビット浮動小数点値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル
B 16ビット浮動小数点値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、または none 型

結果

結果 説明
Y 16ビット浮動小数点値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

onnx.ConvTranspose (ONNXConvTransposeOp)

ONNX ConvTranspose 演算

転置畳み込み演算子は、入力テンソルとフィルターを消費し、出力を計算します。

pads パラメータが指定されている場合、出力の形状は次の式で計算されます。

output_shape[i] = stride[i] * (input_size[i] - 1) + output_padding[i] + ((kernel_shape[i] - 1) * dilations[i] + 1) - pads[start_i] - pads[end_i]

output_shape は明示的に指定することもできます。その場合、pads 値は次の式を使用して自動生成されます。

total_padding[i] = stride[i] * (input_size[i] - 1) + output_padding[i] + ((kernel_shape[i] - 1) * dilations[i] + 1) - output_shape[i] If (auto_pads == SAME_UPPER): pads[start_i] = total_padding[i]/2; pads[end_i] = total_padding[i] - (total_padding[i]/2) Else: pads[start_i] = total_padding[i] - (total_padding[i]/2); pads[end_i] = (total_padding[i]/2).

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
auto_pad::mlir::StringAttr文字列属性
dilations::mlir::ArrayAttr64ビット整数配列属性
グループ::mlir::IntegerAttr64ビット符号付き整数属性
kernel_shape::mlir::ArrayAttr64ビット整数配列属性
output_padding::mlir::ArrayAttr64ビット整数配列属性
output_shape::mlir::ArrayAttr64ビット整数配列属性
pads::mlir::ArrayAttr64ビット整数配列属性
strides::mlir::ArrayAttr64ビット整数配列属性

オペランド

オペランド 説明
X 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル
W 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル
B 16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、または none 型

結果

結果 説明
Y 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

onnx.Cos (ONNXCosOp)

ONNX Cos 演算

与えられた入力テンソルのコサインを要素ごとに計算します。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
入力 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

結果

結果 説明
出力 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

onnx.Cosh (ONNXCoshOp)

ONNX Cosh 演算

与えられた入力テンソルの双曲線コサインを要素ごとに計算します。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
入力 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

結果

結果 説明
出力 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

onnx.CumSum (ONNXCumSumOp)

ONNX CumSum 演算

指定された軸に沿って入力要素の累積和を実行します。デフォルトでは、最初の要素がそのままコピーされる意味で、包括的に合計を実行します。 exclusive 属性を通じて、この動作を最初の要素を除外するように変更できます。また、軸の反対方向で合計を実行することもできます。そのためには、reverse 属性を 1 に設定します。

input_x = [1, 2, 3]
axis=0
output = [1, 3, 6]
exclusive=1
output = [0, 1, 3]
exclusive=0
reverse=1
output = [6, 5, 3]
exclusive=1
reverse=1
output = [5, 3, 0]

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
exclusive::mlir::IntegerAttr64ビット符号付き整数属性
reverse::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
x 32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、または bfloat16 型値のテンソル
axis 32ビット符号なし整数値のテンソルまたは64ビット符号なし整数値のテンソル

結果

結果 説明
y 32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、または bfloat16 型値のテンソル

onnx.Custom (ONNXCustomOp)

ONNX Custom 演算

CustomOp は ONNX 標準で定義された Op ではなく、変換できる Op の拡張または最終的にユーザー定義の外部関数を呼び出すことをサポートするために追加されました。

これにより、ユーザー定義の演算を呼び出すことができ、その場合、演算の名前を表す文字列が必須の属性になります。その他の入力はユーザー演算に渡されます。

入力と出力の数は変化する可能性があります。

CustomOp は外部関数呼び出しに固定数の入出力が必要な場合があるため、NoneType は入力と出力の両方で許可されています。

ユーザー定義演算に渡される値に加えて、CustomOp の分析と変換を容易にするために特定の属性が導入されています。

コンパイラは CustomOp のセマンティクスを定義しないため、onnx-mlir はその出力の形状を推論できません。したがって、CustomOp で形状推論を実行する方法を指定するために、特定の属性が導入されています。これらの属性は次のとおりです。 ‘inputs_for_infer’: オプション。形状推論に使用される入力のインデックス。インデックスの値は [0, 入力の数) である必要があります。指定しない場合、CustomOp のすべての入力が形状推論に使用されます。 ‘shape_infer_pattern’: オプション。入力(inputs_for_infer で制限される場合がある)から出力への形状情報の伝達方法を指定します。現在サポートされているパターンは、SameAsMDBroadcast です。 ‘output_element_type’: オプション。出力テンソルの要素型。指定しない場合は、形状推論パターンの動作に従います。通常、最初の入力の要素型が使用されます。 CustomOp の各インスタンスは、形状推論のために独自の属性を持つことができ、カスタマイズが可能です。ただし、同じ function_name を持つ CustomOp は通常、形状推論に関して同様に動作するため、同じ属性を持ちます。

ONNX op の既存の形状推論パターンは CustomOp で再利用され、その属性値に基づいて形状推論の多様性が実現されます。 ONNX Op の現在の実装により、形状推論属性が指定された CustomOp は、可変数の出力ではなく、単一の出力のみをサポートします。

形状推論の属性が提供されない場合、CustomOp の形状推論は単純にパススルーします。

これらの追加属性はすべてオプションであり、侵入的でないように設計されています。新しい属性が追加された場合でも、.mlir ファイルは同じままにすることができます。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
function_name::mlir::StringAttr文字列属性
output_element_type::mlir::TypeAttr任意の型属性
shape_infer_pattern::mlir::StringAttr文字列属性
inputs_for_infer::mlir::ArrayAttr64ビット整数配列属性

オペランド

オペランド 説明
入力 任意の型値のテンソルまたは任意の型値の memref または none 型の可変個引数

結果

結果 説明
出力 任意の型値のテンソルまたは任意の型値の memref または none 型の可変個引数

onnx.DFT (ONNXDFTOp)

ONNX DFT 演算

入力の離散フーリエ変換 (DFT) を計算します。

入力の形状が [M, N] であると仮定します。ここで、N は DFT が計算される次元であり、M は概念的な「他のすべての次元」を表します。形状が [M, N] の DFT y[m, k] は次のように定義されます。

\[y[m, k] = \sum_{n=0}^{N-1} e^{-2 \pi j \frac{k n}{N} } x[m, n] ,\]

逆変換は次のように定義されます。

\[x[m, n] = \frac{1}{N} \sum_{k=0}^{N-1} e^{2 \pi j \frac{k n}{N} } y[m, k] ,\]

ここで、$j$ は虚数単位です。

出力の実際の形状は「出力」セクションで指定されます。

参照: https://docs.scipy.org/doc/scipy/tutorial/fft.html

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
inverse::mlir::IntegerAttr64ビット符号付き整数属性
onesided::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
入力 bfloat16 型値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル
dft_length 32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、または none 型
axis 64ビット符号なし整数値のテンソルまたは none 型

結果

結果 説明
出力 bfloat16 型値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

onnx.DFTV17 (ONNXDFTV17Op)

ONNX DFT 演算

入力の離散フーリエ変換を計算します。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
axis::mlir::IntegerAttr64ビット符号付き整数属性
inverse::mlir::IntegerAttr64ビット符号付き整数属性
onesided::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
入力 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型の値のテンソル
dft_length 32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、または none 型

結果

結果 説明
出力 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型の値のテンソル

onnx.DeformConv (ONNXDeformConvOp)

ONNX DeformConv 演算

https://arxiv.org/abs/1703.06211 および https://arxiv.org/abs/1811.11168 に記載されているように、変形可能な畳み込みを実行します。この演算子の仕様は、一般的な N-D ケースをサポートします。ほとんどの一般的なユースケースでは、2D または 3D データを使用することに注意してください。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
dilations::mlir::ArrayAttr64ビット整数配列属性
グループ::mlir::IntegerAttr64ビット符号付き整数属性
kernel_shape::mlir::ArrayAttr64ビット整数配列属性
offset_group::mlir::IntegerAttr64ビット符号付き整数属性
pads::mlir::ArrayAttr64ビット整数配列属性
strides::mlir::ArrayAttr64ビット整数配列属性

オペランド

オペランド 説明
X 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル
W 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル
offset 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル
B 16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、または none 型
mask 16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、または none 型

結果

結果 説明
Y 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

onnx.DepthToSpace (ONNXDepthToSpaceOp)

ONNX DepthToSpace 演算

DepthToSpace は、深さからのデータを空間データのブロックに再配置(並べ替え)します。これは SpaceToDepth の逆変換です。より具体的には、この Op は、深さ次元からの値が高さ次元と幅次元に空間ブロックで移動された入力テンソルのコピーを出力します。デフォルトでは、mode = DCR です。DCR モードでは、入力テンソルからの深さ次元に沿った要素は、深さ、列、行の順に並べ替えられます。出力 y は、以下のように入力 x から計算されます。

b, c, h, w = x.shape
tmp = np.reshape(x, [b, blocksize, blocksize, c // (blocksize**2), h, w])
tmp = np.transpose(tmp, [0, 3, 4, 1, 5, 2])
y = np.reshape(tmp, [b, c // (blocksize**2), h * blocksize, w * blocksize])

CRD モードでは、入力テンソルからの深さ次元に沿った要素は、列、行、深さの順に並べ替えられます。出力 y は、以下のように入力 x から計算されます。

b, c, h, w = x.shape
tmp = np.reshape(x, [b, c // (blocksize ** 2), blocksize, blocksize, h, w])
tmp = np.transpose(tmp, [0, 1, 4, 2, 5, 3])
y = np.reshape(tmp, [b, c // (blocksize ** 2), h * blocksize, w * blocksize])

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
blocksize::mlir::IntegerAttr64ビット符号付き整数属性
mode::mlir::StringAttr文字列属性

オペランド

オペランド 説明
入力 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、bfloat16型の値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル

結果

結果 説明
出力 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、bfloat16型の値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル

onnx.DequantizeLinear (ONNXDequantizeLinearOp)

ONNX DequantizeLinear 演算

線形逆量子化演算子。量子化されたテンソル、スケール、およびゼロ点を消費して、完全精度のテンソルを計算します。逆量子化式は y = (x - x_zero_point) * x_scale です。x_scalex_zero_point は同じ形状を持つ必要があり、テンソルごと/レイヤーごとの量子化の場合はスカラーにすることも、軸ごとの量子化の場合は 1 次元テンソルにすることもできます。x_zero_pointx は同じ型である必要があります。xy は同じ形状である必要があります。int32 を逆量子化する場合、ゼロ点はありません(ゼロ点は 0 であると想定されています)。zero-point は通常、float8e4m3fn、float8e4m3fnuz、float8e5m2、float8e5m2fnuz 量子化の場合には使用されませんが、一貫性のために逆量子化式は同じままであり、'x_scale' は引き続き出力型を決定します。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
axis::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
x 8ビット符号なし整数値のテンソル、8ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、f8E4M3FN 型値のテンソル、f8E4M3FNUZ 型値のテンソル、f8E5M2 型値のテンソル、または f8E5M2FNUZ 型値のテンソル
x_scale 32ビット浮動小数点値のテンソル、16ビット浮動小数点値のテンソル、または bfloat16 型値のテンソル
x_zero_point 8ビット符号なし整数値のテンソル、8ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、f8E4M3FN 型値のテンソル、f8E4M3FNUZ 型値のテンソル、f8E5M2 型値のテンソル、または f8E5M2FNUZ 型値のテンソルまたは none 型

結果

結果 説明
y 32ビット浮動小数点値のテンソル、16ビット浮動小数点値のテンソル、または bfloat16 型値のテンソル

onnx.Det (ONNXDetOp)

ONNX Det 演算

Det は、正方行列または正方行列のバッチの行列式を計算します。Det は、形状が [*, M, M] の入力テンソルを 1 つ取ります。ここで、* は 0 個以上のバッチ次元であり、最も内側の 2 つの次元が正方行列を形成します。出力は、すべての入力部分行列の行列式を含む、形状が [*] のテンソルです。たとえば、入力が 2 次元の場合、出力はスカラー(形状は空:[])です。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
X 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

結果

結果 説明
Y 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

onnx.DictVectorizer (ONNXDictVectorizerOp)

ONNX DictVectorizer 操作

インデックスマッピングを使用して、辞書を配列に変換します。
辞書が与えられた場合、各キーは、キーのタイプに対応する語彙属性で検索されます。キーが見つかった語彙配列のインデックスは、出力 1 次元テンソル ‘Y’ のインデックス付けに使用され、辞書 ‘X’ に見つかった値が挿入されます。
入力マップのキータイプは、定義された語彙属性の要素タイプに対応する必要があります。したがって、出力配列の長さは、インデックスマッピングベクターパラメーターと同じになります。入力辞書のすべてのキーは、インデックスマッピングベクターに存在する必要があります。入力辞書の各項目について、その値を出力配列に挿入します。入力辞書に存在しないキーは、出力配列ではゼロになります。
例:string_vocabulary パラメーターが [\"a\", \"c\", \"b\", \"z\"] に設定されている場合、{\"a\": 4, \"c\": 8} の入力は [4, 8, 0, 0] の出力を生成します。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
int64_vocabulary::mlir::ArrayAttr64ビット整数配列属性
string_vocabulary::mlir::ArrayAttr文字列配列属性

オペランド

オペランド 説明
X 文字列型または 64 ビット符号なし整数値の任意の組み合わせを持つタプル、または 64 ビット符号なし整数または文字列型の値の任意の組み合わせを持つタプル、または 64 ビット符号なし整数または 32 ビット浮動小数点値の任意の組み合わせを持つタプル、または 64 ビット符号なし整数または 64 ビット浮動小数点値の任意の組み合わせを持つタプル、または文字列型または 32 ビット浮動小数点値の任意の組み合わせを持つタプル、または文字列型または 64 ビット浮動小数点値の任意の組み合わせを持つタプル

結果

結果 説明
Y 64 ビット符号なし整数値のテンソル、または 32 ビット浮動小数点値のテンソル、または 64 ビット浮動小数点値のテンソル、または文字列型の値のテンソル

onnx.DimGroup (ONNXDimGroupOp)

ONNX 次元グループ操作。

この操作は、テンソルのコンパイル時不明の次元をグループ ID にリンクするためのものです。同じグループ ID を持つ 2 つの次元は、実行時に等しくなると想定されます。

"onnx.DimGroup"(%tensor) {axis = 0 : si64, group_id = 1: si64} : (tensor<?x3x5xf32>) -> ()

axis は、テンソル内の次元位置を識別します。

group_id は、次元のグループ ID を識別します。これは非負です。group_id の値 -1 は、次元がどのグループにも属さないことを意味します。

この操作は、現在、不明な次元分析クラスをテストするために、パス --onnx-dim-analysis で使用されています。

この操作は標準の一部ではなく、onnx-mlir を支援するために追加されました。

属性

属性MLIR 型説明
axis::mlir::IntegerAttr64ビット符号付き整数属性
group_id::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
data 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、bfloat16型の値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル

onnx.Dim (ONNXDimOp)

ONNX 次元操作。

この操作は、テンソルの次元を取得するためのものです。

"onnx.Dim"(%tensor) {axis = 0 : si64} : (tensor<?x3x5xf32>) -> tensor<1xi64>

軸は、取得する形状内の次元を識別します。

この操作は標準の一部ではなく、onnx-mlir を支援するために追加されました。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
axis::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
data 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、bfloat16型の値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル

結果

結果 説明
dim 64ビット符号なし整数値のテンソル

onnx.Div (ONNXDivOp)

ONNX Div 操作

要素ごとの 2 項除算を実行します(Numpy スタイルのブロードキャストをサポート)。

この演算子は、多方向(つまり、NumPyスタイル)のブロードキャストをサポートしています。詳細については、ドキュメントを参照してください。

(Opset 14 の変更):uint8、int8、uint16、および int16 を含むようにサポートされる型を拡張しました。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
A 8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型値のテンソル
B 8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型値のテンソル

結果

結果 説明
C 8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型値のテンソル

onnx.Dropout (ONNXDropoutOp)

ONNX Dropout 操作

Dropout は、浮動小数点テンソル、オプションの入力比率(浮動小数点スカラー)、およびオプションの入力 training_mode(ブールスカラー)を取ります。出力(浮動小数点テンソル)とマスク(オプションの Tensor<bool>)の 2 つのテンソル出力を生成します。 training_mode が true の場合、出力 Y はランダムドロップアウトになります。このドロップアウトは、次の式でマスクされた入力データをスケーリングすることに注意してください。したがって、トレーニング済みのモデルを推論モードに変換するには、ユーザーは training_mode 入力を渡さないか、false に設定するだけで済みます。

output = scale * data * mask,

ここで

scale = 1. / (1. - ratio).

この演算子には、オプションの入出力があります。オプションの引数の表現の詳細については、ドキュメントを参照してください。実際の引数の名前の代わりに、欠落している引数を示すために空の文字列を使用できます。末尾のオプションの引数(存在する引数が後に続かないもの)も、単純に省略できます。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
seed::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
data 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型の値のテンソル
ratio 16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、または none 型
training_mode 1 ビット符号なし整数値のテンソルまたは none 型

結果

結果 説明
出力 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型の値のテンソル
mask 1 ビット符号なし整数値のテンソルまたは none 型

onnx.DynamicQuantizeLinear (ONNXDynamicQuantizeLinearOp)

ONNX DynamicQuantizeLinear 操作

FP32 入力データのスケール、ゼロ点、および FP32->8 ビット変換の計算を融合する関数。指定された FP32 入力のスケール、ゼロ点、および量子化された入力を出力します。スケールは次のように計算されます。

y_scale = (maximum(0, max(x)) - minimum(0, min(x))) / (qmax - qmin)

ゼロ点は次のように計算されます。

intermediate_zero_point = qmin - min(x)/y_scale
y_zero_point = cast(round(saturate(itermediate_zero_point)))

データ量子化式は

y = saturate (round (x / y_scale) + y_zero_point)

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
x 32ビット浮動小数点値のテンソル

結果

結果 説明
y 8 ビット符号なし整数値のテンソル
y_scale 32ビット浮動小数点値のテンソル
y_zero_point 8 ビット符号なし整数値のテンソル

onnx.Einsum (ONNXEinsumOp)

ONNX Einsum 操作

term1, term2 -> output-term の形式の einsum は、次の式を使用して出力テンソルを生成します。

output[output-term] = reduce-sum( input1[term1] * input2[term2] )

ここで、reduce-sum は、出力項に現れない入力項(term1、term2)に現れるすべてのインデックスに対して合計を実行します。

Einsum 演算子は、アインシュタインの縮約表記を使用して、テンソルのシーケンスに対して代数的テンソル演算を評価します。式文字列には、コンマで区切られた小文字のシーケンスが含まれています。各項はオペランドテンソルに対応し、項内の文字はオペランド次元に対応します。

このシーケンスの後に "->" を付けて、式の左辺と右辺を区切ることができます。式に "->" の後に右辺が含まれている場合は、アインシュタインの明示的(非古典的)形式の合計が実行され、右辺のインデックスが出力テンソルの次元を示します。それ以外の場合、出力インデックスは、式に正確に 1 回現れるインデックスのアルファベット順のシーケンスに(暗黙的に)設定されます。

次元文字が左辺で繰り返される場合、それは次元に沿った合計を表します。

式には、ブロードキャストを有効にするために省略記号 ("…") を含めることができます。省略記号は、固定された数の次元を示す必要があります。具体的には、式に出現するすべての省略記号は、同じ数の次元を表す必要があります。右辺には、正確に 1 つの省略記号を含めることができます。暗黙モードでは、省略記号の次元は出力の先頭に設定されます。式文字列には、スペース(U + 0020)文字を含めることができます。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
equation::mlir::StringAttr文字列属性

オペランド

オペランド 説明
入力 8 ビット符号なし整数値のテンソル、または 16 ビット符号なし整数値のテンソル、または 32 ビット符号なし整数値のテンソル、または 64 ビット符号なし整数値のテンソル、または 8 ビット符号付き整数値のテンソル、または 16 ビット符号付き整数値のテンソル、または 32 ビット符号付き整数値のテンソル、または 64 ビット符号付き整数値のテンソル、または 16 ビット浮動小数点値のテンソル、または 32 ビット浮動小数点値のテンソル、または 64 ビット浮動小数点値のテンソルの可変引数

結果

結果 説明
出力 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

onnx.Elu (ONNXEluOp)

ONNX Elu 操作

Elu は、1 つの入力データ(Tensor)を受け取り、1つの出力データ(Tensor)を取り、そこで関数 `f(x) = alpha * (exp(x) - 1.) for x < 0`、`f(x) = x for x >= 0` が、テンソル要素ごとに適用されます。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
alpha::mlir::FloatAttr32ビット浮動小数点属性

オペランド

オペランド 説明
X 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

結果

結果 説明
Y 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

onnx.EntryPoint (ONNXEntryPointOp)

ONNX エントリポイントを示す

「onnx.EntryPoint」関数は、ONNX モデルのメインエントリポイントを示します。

この操作は標準の一部ではなく、onnx-mlir を支援するために追加されました。

属性

属性MLIR 型説明
func::mlir::SymbolRefAttrシンボル参照属性

onnx.Equal (ONNXEqualOp)

ONNX Equal 操作

入力テンソル A および B で要素ごとに equal 論理演算を実行した結果のテンソルを返します(Numpy スタイルのブロードキャストをサポート)。

この演算子は、多方向(つまり、NumPyスタイル)のブロードキャストをサポートしています。詳細については、ドキュメントを参照してください。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
A 1 ビット符号なし整数値のテンソル、または 8 ビット符号なし整数値のテンソル、または 16 ビット符号なし整数値のテンソル、または 32 ビット符号なし整数値のテンソル、または 64 ビット符号なし整数値のテンソル、または 8 ビット符号付き整数値のテンソル、または 16 ビット符号付き整数値のテンソル、または 32 ビット符号付き整数値のテンソル、または 64 ビット符号付き整数値のテンソル、または 16 ビット浮動小数点値のテンソル、または 32 ビット浮動小数点値のテンソル、または 64 ビット浮動小数点値のテンソル、または bfloat16 型の値のテンソル、または文字列型の値のテンソル
B 1 ビット符号なし整数値のテンソル、または 8 ビット符号なし整数値のテンソル、または 16 ビット符号なし整数値のテンソル、または 32 ビット符号なし整数値のテンソル、または 64 ビット符号なし整数値のテンソル、または 8 ビット符号付き整数値のテンソル、または 16 ビット符号付き整数値のテンソル、または 32 ビット符号付き整数値のテンソル、または 64 ビット符号付き整数値のテンソル、または 16 ビット浮動小数点値のテンソル、または 32 ビット浮動小数点値のテンソル、または 64 ビット浮動小数点値のテンソル、または bfloat16 型の値のテンソル、または文字列型の値のテンソル

結果

結果 説明
C 1ビット符号なし整数値のテンソル

onnx.Erf (ONNXErfOp)

ONNX Erf 操作

指定された入力テンソルの誤差関数を要素ごとに計算します。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
入力 8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型値のテンソル

結果

結果 説明
出力 8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型値のテンソル

onnx.Exp (ONNXExpOp)

ONNX Exp 操作

指定された入力テンソルの指数を要素ごとに計算します。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
入力 bfloat16 型値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

結果

結果 説明
出力 bfloat16 型値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

onnx.Expand (ONNXExpandOp)

ONNX Expand 操作

指定された形状とブロードキャストルールに従って、入力テンソルをブロードキャストします。ブロードキャストルールは numpy.array(input) * numpy.ones(shape) に似ています。次元は右揃えです。2 つの対応する次元は同じ値を持つか、いずれかが 1 に等しい必要があります。また、この演算子は numpy.broadcast_to(input, shape) に似ていますが、主な違いは、numpy.broadcast_to() では、形状が input.size() より小さくなることが許可されていないことです。形状の一部の次元が 1 に等しい場合、または shape.ndim < input.shape.ndim の場合、output.shape が形状と等しくない可能性があります。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
入力 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、bfloat16型の値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル
shape 64ビット符号なし整数値のテンソル

結果

結果 説明
出力 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、bfloat16型の値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル

onnx.EyeLike (ONNXEyeLikeOp)

ONNX EyeLike 操作

対角に 1 があり、他のすべての場所に 0 がある 2 次元テンソル(行列)を生成します。2 次元テンソルのみがサポートされています。つまり、入力 T1 はランク 2 である必要があります。出力テンソルの形状は、入力テンソルと同じです。データ型は、「dtype」引数で指定できます。「dtype」が指定されていない場合、入力テンソルの型が使用されます。デフォルトでは、主対角には 1 が入力されますが、属性「k」を使用して、上または下対角を入力できます。「dtype」引数は、TensorProto メッセージの「DataType」列挙フィールドで指定されたデータ型のいずれかである必要があり、出力型として有効である必要があります。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
dtype::mlir::IntegerAttr64ビット符号付き整数属性
k::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
入力 16 ビット浮動小数点値のテンソル、または 32 ビット浮動小数点値のテンソル、または 64 ビット浮動小数点値のテンソル、または 8 ビット符号付き整数値のテンソル、または 16 ビット符号付き整数値のテンソル、または 32 ビット符号付き整数値のテンソル、または 64 ビット符号付き整数値のテンソル、または 8 ビット符号なし整数値のテンソル、または 16 ビット符号なし整数値のテンソル、または 32 ビット符号なし整数値のテンソル、または 64 ビット符号なし整数値のテンソル、または 1 ビット符号なし整数値のテンソル

結果

結果 説明
出力 16 ビット浮動小数点値のテンソル、または 32 ビット浮動小数点値のテンソル、または 64 ビット浮動小数点値のテンソル、または 8 ビット符号付き整数値のテンソル、または 16 ビット符号付き整数値のテンソル、または 32 ビット符号付き整数値のテンソル、または 64 ビット符号付き整数値のテンソル、または 8 ビット符号なし整数値のテンソル、または 16 ビット符号なし整数値のテンソル、または 32 ビット符号なし整数値のテンソル、または 64 ビット符号なし整数値のテンソル、または 1 ビット符号なし整数値のテンソル

onnx.FeatureVectorizer (ONNXFeatureVectorizerOp)

ONNX FeatureVectorizer 操作

入力テンソルを 1 つの連続した出力に連結します。
すべての入力形状は 2 次元であり、2 番目の次元に沿って連結されます。1 次元テンソルは [1,C] として扱われます。入力は、入力引数の順序を維持しながら出力にコピーされます。
すべての入力は整数または浮動小数点である必要があり、出力はすべて浮動小数点値になります。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
inputdimensions::mlir::ArrayAttr64ビット整数配列属性

オペランド

オペランド 説明
X 32 ビット符号付き整数値のテンソル、または 64 ビット符号付き整数値のテンソル、または 32 ビット浮動小数点値のテンソル、または 64 ビット浮動小数点値のテンソルの可変引数

結果

結果 説明
Y 32ビット浮動小数点値のテンソル

onnx.Flatten (ONNXFlattenOp)

ONNX Flatten 操作

入力テンソルを 2 次元行列にフラット化します。入力テンソルの形状が (d_0, d_1, … d_n) の場合、出力の形状は (d_0 X d_1 … d_(axis-1), d_axis X d_(axis+1) … X dn) になります。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
axis::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
入力 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、bfloat16型の値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル

結果

結果 説明
出力 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、bfloat16型の値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル

onnx.Floor (ONNXFloorOp)

ONNX Floor 操作

Floor は 1 つの入力データ(Tensor)を受け取り、1つの出力データ(Tensor) ここで、床関数 y = floor(x) は、テンソルに対して要素ごとに適用されます。x が整数、+0、-0、NaN、または無限大の場合、x 自体が返されます。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
X 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型の値のテンソル

結果

結果 説明
Y 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型の値のテンソル

onnx.GRU (ONNXGRUOp)

ONNX GRU 操作

1層のGRUを計算します。この演算子は通常、CuDNNなどのカスタム実装を通じてサポートされます。

記法

活性化関数

注:以下はオプションです。

方程式(デフォルト:f=Sigmoid、g=Tanh)

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
activation_alpha::mlir::ArrayAttr32ビット浮動小数点配列属性
activation_beta::mlir::ArrayAttr32ビット浮動小数点配列属性
activations::mlir::ArrayAttr文字列配列属性
clip::mlir::FloatAttr32ビット浮動小数点属性
direction::mlir::StringAttr文字列属性
hidden_size::mlir::IntegerAttr64ビット符号付き整数属性
layout::mlir::IntegerAttr64ビット符号付き整数属性
linear_before_reset::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
X 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル
W 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル
R 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル
B 16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、または none 型
sequence_lens 32ビット符号なし整数値のテンソル、または None 型
initial_h 16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、または none 型

結果

結果 説明
Y 16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、または none 型
Y_h 16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、または none 型

onnx.GatherElements (ONNXGatherElementsOp)

ONNX GatherElements 操作

GatherElements は、同じランク r >= 1 の 2 つの入力 dataindices、および data の軸を識別するオプションの属性 axis(デフォルトでは、一番外側の軸、つまり軸 0)を受け取ります。これは、indices テンソルの要素によって決定されたインデックス位置で入力データテンソルをインデックス化することにより、出力を生成するインデックス操作です。その出力形状は、indices の形状と同じであり、indices の各要素に対して(data から収集された)1つの値で構成されます。

たとえば、3次元の場合(r = 3)、生成される出力は次の方程式によって決定されます。

out[i][j][k] = input[index[i][j][k]][j][k] if axis = 0,
out[i][j][k] = input[i][index[i][j][k]][k] if axis = 1,
out[i][j][k] = input[i][j][index[i][j][k]] if axis = 2,

この演算子は、ScatterElements の逆でもあります。これは、Torch の gather 操作に似ています。

例 1

data = [
    [1, 2],
    [3, 4],
]
indices = [
    [0, 0],
    [1, 0],
]
axis = 1
output = [
    [1, 1],
    [4, 3],
]

例 2

data = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9],
]
indices = [
    [1, 2, 0],
    [2, 0, 0],
]
axis = 0
output = [
    [4, 8, 3],
    [7, 2, 3],
]

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
axis::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
data 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、bfloat16型の値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル
indices 32ビット符号なし整数値のテンソルまたは64ビット符号なし整数値のテンソル

結果

結果 説明
出力 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、bfloat16型の値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル

onnx.GatherND (ONNXGatherNDOp)

ONNX GatherND 操作

ランク r >= 1 の data テンソル、ランク q >= 1 の indices テンソル、および整数 batch_dims b が与えられた場合、この演算子は data のスライスをランク q + r - indices_shape[-1] - 1 - b の出力テンソルに収集します。

indices は q 次元の整数テンソルであり、data へのインデックスタプルの(q-1)次元テンソルと考えるのが最適であり、各要素は data のスライスを定義します。

batch_dimsb と表記)は、バッチディメンションの数を示す整数です。つまり、data テンソルと indices の先頭の b 個のディメンションがバッチを表し、収集は b+1 番目のディメンションから開始されます。

入力のランクと形状に関する重要なポイント

1)r >= 1 および q >= 1 は尊重される必要があります。ランク rq の間に満たすべき依存関係条件はありません。

2)indices テンソルと data テンソルの形状の最初の b ディメンションは等しくなければなりません。

3)b < min(q, r) は尊重される必要があります。

4)indices_shape[-1] は、1(両端を含む)からランク r-b(両端を含む)までの値を持つ必要があります。

5)indices 内のすべての値は、サイズ s の軸に沿って [-s, s-1] の範囲内であることが期待されます(つまり)-data_shape[i] <= indices[...,i] <= data_shape[i] - 1。いずれかのインデックス値が範囲外にある場合はエラーになります。

出力は次のように計算されます

出力テンソルは、indices テンソル内の各インデックスタプルを、対応する入力 data のスライスにマッピングすることによって取得されます。

1)indices_shape[-1] > r-b の場合 => エラー状態

2)indices_shape[-1] == r-b の場合、indices のランクが q であるため、indices は、r-b のディメンションの 1 次元テンソルを含む N 個の (q-b-1) 次元テンソルと考えることができます。ここで、N は、1とindices_shapeのバッチディメンション内のすべての要素の積に等しい整数です。このような各r-bランクテンソルをindices_sliceとして考えてみましょう。data[0:b-1,indices_slice]に対応する各*スカラー値*は、(q-b-1)次元テンソルの対応する場所に埋め込まれて、outputテンソルを形成します(以下の例1)。

3)indices_shape[-1] < r-b の場合、indices のランクが q であるため、indices は、r-b 未満のディメンションの 1 次元テンソルを含む N 個の (q-b-1) 次元テンソルと考えることができます。このような各テンソルをindices_sliceとして考えてみましょう。data[0:b-1, indices_slice , :]に対応する各*テンソルスライス*は、(q-b-1)次元テンソルの対応する場所に埋め込まれて、outputテンソルを形成します(以下の例2、3、4、および5)。

この演算子は、ScatterND の逆です。

例 1

batch_dims = 0
data    = [[0,1],[2,3]]   # data_shape    = [2, 2]
indices = [[0,0],[1,1]]   # indices_shape = [2, 2]
output  = [0,3]           # output_shape  = [2]

例 2

batch_dims = 0
data    = [[0,1],[2,3]]  # data_shape    = [2, 2]
indices = [[1],[0]]      # indices_shape = [2, 1]
output  = [[2,3],[0,1]]  # output_shape  = [2, 2]

例 3

batch_dims = 0
data    = [[[0,1],[2,3]],[[4,5],[6,7]]] # data_shape    = [2, 2, 2]
indices = [[0,1],[1,0]]                 # indices_shape = [2, 2]
output  = [[2,3],[4,5]]                 # output_shape  = [2, 2]

例 4

batch_dims = 0
data    = [[[0,1],[2,3]],[[4,5],[6,7]]] # data_shape    = [2, 2, 2]
indices = [[[0,1]],[[1,0]]]             # indices_shape = [2, 1, 2]
output  = [[[2,3]],[[4,5]]]             # output_shape  = [2, 1, 2]

例 5

batch_dims = 1
data    = [[[0,1],[2,3]],[[4,5],[6,7]]] # data_shape    = [2, 2, 2]
indices = [[1],[0]]                     # indices_shape = [2, 1]
output  = [[2,3],[4,5]]                 # output_shape  = [2, 2]

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
batch_dims::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
data 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、bfloat16型の値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル
indices 64ビット符号なし整数値のテンソル

結果

結果 説明
出力 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、bfloat16型の値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル

onnx.Gather (ONNXGatherOp)

ONNX Gather 操作

ランク r >= 1 の data テンソル、およびランク q の indices テンソルが与えられた場合、indices によってインデックス付けされた data の軸ディメンション(デフォルトでは、軸=0として一番外側のもの)のエントリを収集し、ランク q + (r - 1) の出力テンソルに連結します。

axis = 0の場合、k = indices[i_{0}, ..., i_{q-1}\] とすると、output[i_{0}, ..., i_{q-1}, j_{0}, ..., j_{r-2}\] = input[k , j_{0}, ..., j_{r-2}\]

data = [
    [1.0, 1.2],
    [2.3, 3.4],
    [4.5, 5.7],
]
indices = [
    [0, 1],
    [1, 2],
]
output = [
    [
        [1.0, 1.2],
        [2.3, 3.4],
    ],
    [
        [2.3, 3.4],
        [4.5, 5.7],
    ],
]

axis = 1の場合、k = indices[i_{0}, ..., i_{q-1}\] とすると、output[j_{0}, i_{0}, ..., i_{q-1}, j_{1}, ..., j_{r-2}\] = input[j_{0}, k, j_{1}, ..., j_{r-2}\]

data = [
    [1.0, 1.2, 1.9],
    [2.3, 3.4, 3.9],
    [4.5, 5.7, 5.9],
]
indices = [
    [0, 2],
]
axis = 1,
output = [
        [[1.0, 1.9]],
        [[2.3, 3.9]],
        [[4.5, 5.9]],
]

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
axis::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
data 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、bfloat16型の値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル
indices 32ビット符号なし整数値のテンソルまたは64ビット符号なし整数値のテンソル

結果

結果 説明
出力 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、bfloat16型の値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル

onnx.Gelu (ONNXGeluOp)

ONNX Gelu 操作

Gelu は 1 つの入力データ(テンソル)を受け取ります)を受け取り、1つの出力データ(Tensor) ここで、ガウス誤差線形ユニット関数 $y = 0.5 * x * (1 + erf(x/sqrt(2)))$ は、テンソルに対して要素ごとに適用されます。属性「approximate」が「tanh」に設定されている場合、関数推定 $y = 0.5 * x * (1 + Tanh(sqrt(2/\pi) * (x + 0.044715 * x^3)))$ が使用され、テンソルに対して要素ごとに適用されます。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
approximate::mlir::StringAttr文字列属性

オペランド

オペランド 説明
X 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型の値のテンソル

結果

結果 説明
Y 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型の値のテンソル

onnx.Gemm (ONNXGemmOp)

ONNX Gemm 操作

一般行列乗算:https://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms#Level_3

Y = alpha * A’ * B’ + beta * C を計算します。ここで、入力テンソル A は (M, K) または (K, M) の形状、入力テンソル B は (K, N) または (N, K) の形状、入力テンソル C は (M, N) の形状にブロードキャスト可能、出力テンソル Y は (M, N) の形状です。属性 transA がゼロでない場合、計算の前に A が転置されます。B と transB についても同様です。この演算子は、単方向ブロードキャストをサポートします(テンソル C はテンソル A * B に対して単方向ブロードキャスト可能である必要があります)。詳細については、ドキュメントを確認してください。この演算子にはオプションの入出力があります。オプションの引数の表現の詳細については、ドキュメントを参照してください。引数が欠落していることを示すために、実際の引数の名前の代わりに空の文字列を使用できます。後続のオプション引数(存在する引数の後に続かないもの)は、単に省略することもできます。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
alpha::mlir::FloatAttr32ビット浮動小数点属性
beta::mlir::FloatAttr32ビット浮動小数点属性
transA::mlir::IntegerAttr64ビット符号付き整数属性
transB::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
A 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、またはbfloat16型値のテンソル
B 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、またはbfloat16型値のテンソル
C 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、またはbfloat16型値のテンソル、またはnone型

結果

結果 説明
Y 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、またはbfloat16型値のテンソル

onnx.GlobalAveragePool (ONNXGlobalAveragePoolOp)

ONNX GlobalAveragePool 演算

GlobalAveragePool は入力テンソル X を消費し、同じチャネル内の値全体にわたって平均プーリングを適用します。これは、入力テンソルの空間次元に等しいカーネル サイズを持つ AveragePool と同等です。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
X 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

結果

結果 説明
Y 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

onnx.GlobalLpPool (ONNXGlobalLpPoolOp)

ONNX GlobalLpPool 演算

GlobalLpPool は入力テンソル X を消費し、同じチャネル内の値全体にわたって lp プールプーリングを適用します。これは、入力テンソルの空間次元に等しいカーネル サイズを持つ LpPool と同等です。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
p::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
X bfloat16 型値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

結果

結果 説明
Y bfloat16 型値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

onnx.GlobalMaxPool (ONNXGlobalMaxPoolOp)

ONNX GlobalMaxPool 演算

GlobalMaxPool は入力テンソル X を消費し、同じチャネル内の値全体にわたって最大プーリングを適用します。これは、入力テンソルの空間次元に等しいカーネル サイズを持つ MaxPool と同等です。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
X 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

結果

結果 説明
Y 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

onnx.Gradient (ONNXGradientOp)

ONNX Gradient 演算

Gradient 演算子は、特定のテンソルの偏微分を、他のいくつかのテンソルに関して計算します。この演算子は、勾配ベースのトレーニングアルゴリズムで広く使用されています。その使用例を示すために、次の計算グラフを考えてみましょう。

X -----.
       |
       v
W --> Conv --> H --> Gemm --> Y
                      ^
                      |
                      Z

ここで、W と Z はトレーニング可能なテンソルです。簡略化のため、演算子の属性は省略されています。dY/dW (dY/dZ) を W (Z) に関する Y の勾配とします。ユーザーは、以下に示す別のグラフを形成するために Gradient 演算子を挿入することにより、勾配を計算できます。

W --> Conv --> H --> Gemm --> Y
|      ^              ^
|      |              |
|      X              Z
|      |              |
|      |   .----------'
|      |   |  (W/Z/X is the 1st/2nd/3rd input of Gradient as shown in
|      |   |   \"xs\" followed by \"zs\")
|      v   v
'---> Gradient(xs=[\"W\", \"Z\"], zs=[\"X\"], y=\"Y\")
       |   |
       |   '-----------------------------------> dY/dW (1st output of Gradient)
       |
       '---------------------------------------> dY/dZ (2nd output of Gradient)

定義により、テンソル "y" は "xs" と "zs" の独立変数の関数です。"xs" の微分可能な変数に関する "y" の勾配のみを計算するため、この Gradient は dY/dW と dY/dZ のみを出力します。"H" は "xs" と "zs" には出現できないことに注意してください。その理由は、"H" はテンソル "W" と "X" によって決定できるため、"H" は独立変数ではないためです。

すべての出力はオプションです。たとえば、ユーザーは、dY/dW の生成をスキップするために、その Gradient の最初の出力名に空の文字列を割り当てることができます。オプションの出力の概念は、ONNX の RNN、GRU、および LSTM でも見つけることができます。

Gradient 演算子は、中間テンソルに対する導関数を計算できます。たとえば、H に関する Y の勾配は、次のようにして実行できます。

W --> Conv --> H --> Gemm --> Y
       ^       |      ^
       |       |      |
       X       |      Z
       .-------'      |
       |   .----------'
       |   | (H/Z is the 1st/2nd input of Gradient as shown in \"xs\")
       v   v
      Gradient(xs=[\"H\", \"Z\"], y=\"Y\")
       |   |
       |   '-----------------------------------> dY/dH (1st output of Gradient)
       |
       '---------------------------------------> dY/dZ (2nd output of Gradient)

Gradient 演算子を使用して、高階微分を表すことが可能です。たとえば、次の線形モデルを考えると

W --> Gemm --> Y --> Loss --> O
       ^              ^
       |              |
       X              L

W に関する O の 2 階微分 (d^2O/dW^2 で表される) を計算するには、次のようにします。

W --> Gemm --> Y --> Loss --> O
|      ^              ^
|      |              |
|      X .------------L
|      | |            |
|      | |            v
+------+-+> Gradient(xs=[\"X\", \"W\"], zs=[\"L\"], y=\"O\") ---> dO/dX (1st output of Gradient)
|      | |    |
|      | |    '---> dO/dW (2nd output of Gradient)
|      v v
'---> Gradient(xs=[\"X\", \"W\"], zs=[\"L\"], y=\"dO/dW\") ---> d(dO/dW)dX (1st output of
       |                                                  Gradient)
       |
       |
       '---> d^2O/dW^2 (2nd output of Gradient)

属性 "xs"、"zs"、および "y" で名前が付けられたテンソルは、微分された計算グラフを定義し、Gradient ノードへの入力は、勾配が計算される値を定義します。識別されたグラフに異なるテンソルを入力できます。たとえば、H の特定の値である H_1 での H に関する Y の勾配を計算するには、その値を Gradient ノードへの入力として提供します。

W --> Conv --> H --> Gemm --> Y
       ^              ^
       |              |
       X              Z

          Z_1 (2nd input of Gradient)
           |
           v
H_1 --> Gradient(xs=[\"H\", \"Z\"], y=\"Y\") ---> dY/dH when H = H_1 and Y = Y_1.
           |
           '------------------------------> dY/dZ (2nd output of Gradient)

Gradient の入力が "xs" および "zs" で名前が付けられたテンソルの場合、計算を最適化できます。より具体的には、勾配が逆モード自動微分によって計算される場合、フォワードパスの中間変数を再利用できます。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
xs::mlir::ArrayAttr文字列配列属性
y::mlir::StringAttr文字列属性
zs::mlir::ArrayAttr文字列配列属性

オペランド

オペランド 説明
入力 8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、または文字列型値のテンソル、または1ビット符号なし整数値のテンソル、または32ビット浮動小数点要素値を持つ複素数型テンソル、または64ビット浮動小数点要素値を持つ複素数型テンソル

結果

結果 説明
出力 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソルの可変個

onnx.Greater (ONNXGreaterOp)

ONNX Greater 演算

入力テンソル A および B に対して要素ごとの greater 論理演算を実行した結果のテンソルを返します(Numpy スタイルのブロードキャストサポート付き)。

この演算子は、多方向(つまり、NumPyスタイル)のブロードキャストをサポートしています。詳細については、ドキュメントを参照してください。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
A 8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型値のテンソル
B 8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型値のテンソル

結果

結果 説明
C 1ビット符号なし整数値のテンソル

onnx.GreaterOrEqual (ONNXGreaterOrEqualOp)

ONNX GreaterOrEqual 演算

入力テンソル A および B に対して要素ごとの greater_equal 論理演算を実行した結果のテンソルを返します(Numpy スタイルのブロードキャストサポート付き)。

この演算子は、多方向(つまり、NumPyスタイル)のブロードキャストをサポートしています。詳細については、ドキュメントを参照してください。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
A 8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型値のテンソル
B 8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型値のテンソル

結果

結果 説明
C 1ビット符号なし整数値のテンソル

onnx.GridSample (ONNXGridSampleOp)

ONNX GridSample 演算

入力 X とフローフィールド grid が与えられた場合、X の値と grid のピクセル位置を使用して、出力 Y を計算します。現在、空間(4 次元)入力のみがサポートされています。形状 (N, C, H, W) の入力 X と、形状 (N, H_out, W_out, 2) の grid の場合、出力 Y の形状は (N, C, H_out, W_out) になります。

テンソル X には、H x W の 2 次元画像内の正方形ピクセルの中心の値が含まれています。テンソル grid は、指定された補間メソッド(モード)とパディングモード(2 次元画像の外に落ちるグリッド位置の場合)を使用して、出力 Y を計算する正規化された位置を表します。

grid[N, H_out, W_out] の要素は、X の 2 次元空間内の位置を指定するサイズ 2 のベクトルです。これらは、Y[N, C, H_out, W_out] の出力値を補間するために使用されます。

GridSample 演算子は、Spatial Transformer Networks でグリッドジェネレータとサンプラーを実行する際によく使用されます。torch.nn.functional.grid_sample も参照してください。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
align_corners::mlir::IntegerAttr64ビット符号付き整数属性
mode::mlir::StringAttr文字列属性
padding_mode::mlir::StringAttr文字列属性

オペランド

オペランド 説明
X 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル
grid 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

結果

結果 説明
Y 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル

onnx.GroupNormalization (ONNXGroupNormalizationOp)

ONNX GroupNormalization 演算

GroupNormalization 関数。論文 https://arxiv.org/abs/1803.08494 で説明されているように、グループ正規化を実行します。

この演算子は、以下に従って入力を変換します。

y = scale * (x - mean) / sqrt(variance + epsilon) + bias,

ここで、平均と分散はチャネルのグループごとにインスタンスごとに計算され、scalebias はチャネルの各グループに指定する必要があります。グループの数 num_groups は、グループごとに同じ数のチャネルがあるように、チャネル数で割り切れる必要があります。

全体的な計算には、2 つの段階があります。最初の段階では、各グループの各インスタンスの平均がゼロ、分散が 1 になるように要素を正規化します。2 番目の段階では、最初の段階の結果をスケーリングおよびシフトします。最初の段階で使用される浮動小数点精度は、stash_type 属性によって決定されます。たとえば、stash_type が 1 の場合、演算子はすべての入力変数を 32 ビット浮動小数点にキャストし、計算を実行し、最後に正規化された結果を X の元の型に戻します。2 番目の段階は、stash_type に依存しません。

グループの数がチャネルの数と同じ場合、この演算子は InstanceNormalization と同等です。グループが 1 つしかない場合、この演算子は LayerNormalization と同等です。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
epsilon::mlir::FloatAttr32ビット浮動小数点属性
num_groups::mlir::IntegerAttr64ビット符号付き整数属性
stash_type::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
X bfloat16 型値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル
scale bfloat16 型値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル
bias bfloat16 型値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

結果

結果 説明
Y bfloat16 型値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

onnx.GroupNormalizationV18 (ONNXGroupNormalizationV18Op)

ONNX GroupNormalization 演算

GroupNormalization 関数。論文 https://arxiv.org/abs/1803.08494 で説明されているように、グループ正規化を実行します。

この演算子は、以下に従って入力を変換します。

y = scale * (x - mean) / sqrt(variance + epsilon) + bias,

ここで、平均と分散はチャネルのグループごとにインスタンスごとに計算され、scalebias はチャネルの各グループに指定する必要があります。グループの数 num_groups は、グループごとに同じ数のチャネルがあるように、チャネル数で割り切れる必要があります。

グループの数がチャネルの数と同じ場合、この演算子は InstanceNormalization と同等です。グループが 1 つしかない場合、この演算子は LayerNormalization と同等です。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
epsilon::mlir::FloatAttr32ビット浮動小数点属性
num_groups::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
X 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型の値のテンソル
scale 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型の値のテンソル
bias 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型の値のテンソル

結果

結果 説明
Y 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型の値のテンソル

onnx.HammingWindow (ONNXHammingWindowOp)

ONNX HammingWindow 演算

論文 https://ieeexplore.ieee.org/document/1455106 で説明されているように、ハミングウィンドウを生成します。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
output_datatype::mlir::IntegerAttr64ビット符号付き整数属性
periodic::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
size 32ビット符号なし整数値のテンソルまたは64ビット符号なし整数値のテンソル

結果

結果 説明
出力 8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型値のテンソル

onnx.HannWindow (ONNXHannWindowOp)

ONNX HannWindow 演算

論文 https://ieeexplore.ieee.org/document/1455106 で説明されているように、ハンウィンドウを生成します。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
output_datatype::mlir::IntegerAttr64ビット符号付き整数属性
periodic::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
size 32ビット符号なし整数値のテンソルまたは64ビット符号なし整数値のテンソル

結果

結果 説明
出力 8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型値のテンソル

onnx.HardSigmoid (ONNXHardSigmoidOp)

ONNX HardSigmoid 演算

HardSigmoid は、1 つの入力データ(テンソル)を受け取り、1つの出力データ(Tensor)を受け取り、HardSigmoid 関数 y = max(0, min(1, alpha * x + beta)) がテンソルに要素ごとに適用されます。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
alpha::mlir::FloatAttr32ビット浮動小数点属性
beta::mlir::FloatAttr32ビット浮動小数点属性

オペランド

オペランド 説明
X 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

結果

結果 説明
Y 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

onnx.HardSwish (ONNXHardSwishOp)

ONNX HardSwish 演算

HardSwish は、1 つの入力データ(テンソル)を受け取り、1つの出力データ(Tensor)を受け取り、HardSwish 関数 y = x * max(0, min(1, alpha * x + beta)) = x * HardSigmoid<alpha, beta>(x)(ここで、alpha = 1/6、beta = 0.5)がテンソルに要素ごとに適用されます。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
X 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

結果

結果 説明
Y 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

onnx.Hardmax (ONNXHardmaxOp)

ONNX Hardmax 演算

演算子は、指定された入力の hardmax 値を計算します

Hardmax(入力の要素, 軸) = 要素が指定された軸に沿った最初の最大値である場合は 1、それ以外の場合は 0

"axis" 属性は、Hardmax が実行される次元を示します。出力テンソルは同じ形状を持ち、対応する入力の Hardmax 値が含まれています。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
axis::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
入力 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型の値のテンソル

結果

結果 説明
出力 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型の値のテンソル

onnx.Identity (ONNXIdentityOp)

ONNX Identity 演算

Identity 演算子

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
入力 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、bfloat16型値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型値のテンソル、64ビット浮動小数点要素を持つ複素数型値のテンソル、f8E4M3FN型値のテンソル、f8E4M3FNUZ型値のテンソル、f8E5M2型値のテンソル、f8E5M2FNUZ型値のテンソル、8ビット符号なし整数値のテンソルのSeqType、16ビット符号なし整数値のテンソルのSeqType、32ビット符号なし整数値のテンソルのSeqType、64ビット符号なし整数値のテンソルのSeqType、8ビット符号なし整数値のテンソルのSeqType、16ビット符号なし整数値のテンソルのSeqType、32ビット符号なし整数値のテンソルのSeqType、64ビット符号なし整数値のテンソルのSeqType、16ビット浮動小数点値のテンソルのSeqType、32ビット浮動小数点値のテンソルのSeqType、64ビット浮動小数点値のテンソルのSeqType、文字列型値のテンソルのSeqType、1ビット符号なし整数値のテンソルのSeqType、32ビット浮動小数点要素を持つ複素数型値のテンソルのSeqType、64ビット浮動小数点要素を持つ複素数型値のテンソルのSeqType、8ビット符号なし整数値のテンソルのSeqTypeのOptType、16ビット符号なし整数値のテンソルのSeqTypeのOptType、32ビット符号なし整数値のテンソルのSeqTypeのOptType、64ビット符号なし整数値のテンソルのSeqTypeのOptType、8ビット符号なし整数値のテンソルのSeqTypeのOptType、16ビット符号なし整数値のテンソルのSeqTypeのOptType、32ビット符号なし整数値のテンソルのSeqTypeのOptType、64ビット符号なし整数値のテンソルのSeqTypeのOptType、16ビット浮動小数点値のテンソルのSeqTypeのOptType、32ビット浮動小数点値のテンソルのSeqTypeのOptType、64ビット浮動小数点値のテンソルのSeqTypeのOptType、文字列型値のテンソルのSeqTypeのOptType、1ビット符号なし整数値のテンソルのSeqTypeのOptType、32ビット浮動小数点要素を持つ複素数型値のテンソルのSeqTypeのOptType、64ビット浮動小数点要素を持つ複素数型値のテンソルのSeqTypeのOptType、8ビット符号なし整数値のテンソルのOptType、16ビット符号なし整数値のテンソルのOptType、32ビット符号なし整数値のテンソルのOptType、64ビット符号なし整数値のテンソルのOptType、8ビット符号なし整数値のテンソルのOptType、16ビット符号なし整数値のテンソルのOptType、32ビット符号なし整数値のテンソルのOptType、64ビット符号なし整数値のテンソルのOptType、16ビット浮動小数点値のテンソルのOptType、32ビット浮動小数点値のテンソルのOptType、64ビット浮動小数点値のテンソルのOptType、文字列型値のテンソルのOptType、1ビット符号なし整数値のテンソルのOptType、32ビット浮動小数点要素を持つ複素数型値のテンソルのOptType、64ビット浮動小数点要素を持つ複素数型値のテンソルのOptType

結果

結果 説明
出力 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、bfloat16型値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型値のテンソル、64ビット浮動小数点要素を持つ複素数型値のテンソル、f8E4M3FN型値のテンソル、f8E4M3FNUZ型値のテンソル、f8E5M2型値のテンソル、f8E5M2FNUZ型値のテンソル、8ビット符号なし整数値のテンソルのSeqType、16ビット符号なし整数値のテンソルのSeqType、32ビット符号なし整数値のテンソルのSeqType、64ビット符号なし整数値のテンソルのSeqType、8ビット符号なし整数値のテンソルのSeqType、16ビット符号なし整数値のテンソルのSeqType、32ビット符号なし整数値のテンソルのSeqType、64ビット符号なし整数値のテンソルのSeqType、16ビット浮動小数点値のテンソルのSeqType、32ビット浮動小数点値のテンソルのSeqType、64ビット浮動小数点値のテンソルのSeqType、文字列型値のテンソルのSeqType、1ビット符号なし整数値のテンソルのSeqType、32ビット浮動小数点要素を持つ複素数型値のテンソルのSeqType、64ビット浮動小数点要素を持つ複素数型値のテンソルのSeqType、8ビット符号なし整数値のテンソルのSeqTypeのOptType、16ビット符号なし整数値のテンソルのSeqTypeのOptType、32ビット符号なし整数値のテンソルのSeqTypeのOptType、64ビット符号なし整数値のテンソルのSeqTypeのOptType、8ビット符号なし整数値のテンソルのSeqTypeのOptType、16ビット符号なし整数値のテンソルのSeqTypeのOptType、32ビット符号なし整数値のテンソルのSeqTypeのOptType、64ビット符号なし整数値のテンソルのSeqTypeのOptType、16ビット浮動小数点値のテンソルのSeqTypeのOptType、32ビット浮動小数点値のテンソルのSeqTypeのOptType、64ビット浮動小数点値のテンソルのSeqTypeのOptType、文字列型値のテンソルのSeqTypeのOptType、1ビット符号なし整数値のテンソルのSeqTypeのOptType、32ビット浮動小数点要素を持つ複素数型値のテンソルのSeqTypeのOptType、64ビット浮動小数点要素を持つ複素数型値のテンソルのSeqTypeのOptType、8ビット符号なし整数値のテンソルのOptType、16ビット符号なし整数値のテンソルのOptType、32ビット符号なし整数値のテンソルのOptType、64ビット符号なし整数値のテンソルのOptType、8ビット符号なし整数値のテンソルのOptType、16ビット符号なし整数値のテンソルのOptType、32ビット符号なし整数値のテンソルのOptType、64ビット符号なし整数値のテンソルのOptType、16ビット浮動小数点値のテンソルのOptType、32ビット浮動小数点値のテンソルのOptType、64ビット浮動小数点値のテンソルのOptType、文字列型値のテンソルのOptType、1ビット符号なし整数値のテンソルのOptType、32ビット浮動小数点要素を持つ複素数型値のテンソルのOptType、64ビット浮動小数点要素を持つ複素数型値のテンソルのOptType

onnx.If (ONNXIfOp)

ONNX If 演算

条件付きIf

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, HasOnnxSubgraphOpInterface, NoMemoryEffect (MemoryEffectOpInterface), ResultTypeInferenceOpInterface, ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
cond 1ビット符号なし整数値のテンソル

結果

結果 説明
出力 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、bfloat16型値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型値のテンソル、64ビット浮動小数点要素を持つ複素数型値のテンソル、f8E4M3FN型値のテンソル、f8E4M3FNUZ型値のテンソル、f8E5M2型値のテンソル、f8E5M2FNUZ型値のテンソル、8ビット符号なし整数値のテンソルのSeqType、16ビット符号なし整数値のテンソルのSeqType、32ビット符号なし整数値のテンソルのSeqType、64ビット符号なし整数値のテンソルのSeqType、8ビット符号なし整数値のテンソルのSeqType、16ビット符号なし整数値のテンソルのSeqType、32ビット符号なし整数値のテンソルのSeqType、64ビット符号なし整数値のテンソルのSeqType、bfloat16型値のテンソルのSeqType、16ビット浮動小数点値のテンソルのSeqType、32ビット浮動小数点値のテンソルのSeqType、64ビット浮動小数点値のテンソルのSeqType、文字列型値のテンソルのSeqType、1ビット符号なし整数値のテンソルのSeqType、32ビット浮動小数点要素を持つ複素数型値のテンソルのSeqType、64ビット浮動小数点要素を持つ複素数型値のテンソルのSeqType、f8E4M3FN型値のテンソルのSeqType、f8E4M3FNUZ型値のテンソルのSeqType、f8E5M2型値のテンソルのSeqType、f8E5M2FNUZ型値のテンソルのSeqType、8ビット符号なし整数値のテンソルのSeqTypeのOptType、16ビット符号なし整数値のテンソルのSeqTypeのOptType、32ビット符号なし整数値のテンソルのSeqTypeのOptType、64ビット符号なし整数値のテンソルのSeqTypeのOptType、8ビット符号なし整数値のテンソルのSeqTypeのOptType、16ビット符号なし整数値のテンソルのSeqTypeのOptType、32ビット符号なし整数値のテンソルのSeqTypeのOptType、64ビット符号なし整数値のテンソルのSeqTypeのOptType、bfloat16型値のテンソルのSeqTypeのOptType、16ビット浮動小数点値のテンソルのSeqTypeのOptType、32ビット浮動小数点値のテンソルのSeqTypeのOptType、64ビット浮動小数点値のテンソルのSeqTypeのOptType、文字列型値のテンソルのSeqTypeのOptType、1ビット符号なし整数値のテンソルのSeqTypeのOptType、32ビット浮動小数点要素を持つ複素数型値のテンソルのSeqTypeのOptType、64ビット浮動小数点要素を持つ複素数型値のテンソルのSeqTypeのOptType、8ビット符号なし整数値のテンソルのOptType、16ビット符号なし整数値のテンソルのOptType、32ビット符号なし整数値のテンソルのOptType、64ビット符号なし整数値のテンソルのOptType、8ビット符号なし整数値のテンソルのOptType、16ビット符号なし整数値のテンソルのOptType、32ビット符号なし整数値のテンソルのOptType、64ビット符号なし整数値のテンソルのOptType、bfloat16型値のテンソルのOptType、16ビット浮動小数点値のテンソルのOptType、32ビット浮動小数点値のテンソルのOptType、64ビット浮動小数点値のテンソルのOptType、文字列型値のテンソルのOptType、1ビット符号なし整数値のテンソルのOptType、32ビット浮動小数点要素を持つ複素数型値のテンソルのOptType、64ビット浮動小数点要素を持つ複素数型値のテンソルのOptType、f8E4M3FN型値のテンソルのOptType、f8E4M3FNUZ型値のテンソルのOptType、f8E5M2型値のテンソルのOptType、f8E5M2FNUZ型値のテンソルのOptTypeの可変長リスト

onnx.Imputer (ONNXImputerOp)

ONNX Imputer 演算

ある値に等しい入力を別の値で置き換え、他のすべての要素はそのままにします。
この演算子は通常、-1、0、NaN、またはいくつかの極端な値など、標準的な表現を持つ欠損値を置き換えるために使用されます。
imputed_value_floats または imputed_value_int64s のどちらか一方のみを定義する必要があります。入力テンソルが浮動小数点数を持つ場合は浮動小数点数、整数を持つ場合は整数です。補完された値はすべて、テンソル要素型の幅に収まる必要があります。replaced_value_float または replaced_value_int64 のどちらか一方のみを定義する必要があります。どちらを定義するかは、浮動小数点数と整数のどちらが処理されるかによって異なります。
imputed_value 属性の長さは 1 要素にすることも、入力フィーチャごとに 1 要素にすることもできます。
つまり、入力テンソルの形状が [*,F] の場合、属性配列の長さは 1 または F になります。1 の場合は、最後の次元に沿ってブロードキャストされ、各フィーチャに適用されます。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
imputed_value_floats::mlir::ArrayAttr32ビット浮動小数点配列属性
imputed_value_int64s::mlir::ArrayAttr64ビット整数配列属性
replaced_value_float::mlir::FloatAttr32ビット浮動小数点属性
replaced_value_int64::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
X 32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、または64ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル

結果

結果 説明
Y 32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、または64ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル

onnx.InstanceNormalization (ONNXInstanceNormalizationOp)

ONNX InstanceNormalization 演算

論文 https://arxiv.org/abs/1607.08022 に記載されているように、インスタンス正規化を実行します。

y = scale * (x - mean) / sqrt(variance + epsilon) + B。ここで、平均と分散はチャネルごとにインスタンスごとに計算されます。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
epsilon::mlir::FloatAttr32ビット浮動小数点属性

オペランド

オペランド 説明
入力 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル
scale 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル
B 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

結果

結果 説明
出力 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

onnx.IsInf (ONNXIsInfOp)

ONNX IsInf 演算

無限大を true に、他の値を false にマッピングします。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
detect_negative::mlir::IntegerAttr64ビット符号付き整数属性
detect_positive::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
X bfloat16型値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、f8E4M3FN型値のテンソル、f8E4M3FNUZ型値のテンソル、f8E5M2型値のテンソル、f8E5M2FNUZ型値のテンソル

結果

結果 説明
Y 1ビット符号なし整数値のテンソル

onnx.IsNaN (ONNXIsNaNOp)

ONNX IsNaN 演算

入力のどの要素が NaN であるかを返します。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
X bfloat16型値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、f8E4M3FN型値のテンソル、f8E4M3FNUZ型値のテンソル、f8E5M2型値のテンソル、f8E5M2FNUZ型値のテンソル

結果

結果 説明
Y 1ビット符号なし整数値のテンソル

onnx.LRN (ONNXLRNOp)

ONNX LRN 演算

AlexNet論文で提案されたLocal Response Normalization(局所応答正規化)。局所的な入力領域にわたって正規化を行います。局所領域はチャネル間で定義されます。形状が(N x C x D1 x D2, ..., Dk)のテンソル内の要素X[n, c, d1, ..., dk]の場合、その領域は{X[n, i, d1, ..., dk] | max(0, c - floor((size - 1) / 2)) <= i <= min(C - 1, c + ceil((size - 1) / 2))}となります。

square_sum[n, c, d1, ..., dk] = sum(X[n, i, d1, ..., dk] ^ 2)、ここでmax(0, c - floor((size - 1) / 2)) <= i <= min(C - 1, c + ceil((size - 1) / 2))

Y[n, c, d1, ..., dk] = X[n, c, d1, ..., dk] / (bias + alpha / size * square_sum[n, c, d1, ..., dk] ) ^ beta

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
alpha::mlir::FloatAttr32ビット浮動小数点属性
beta::mlir::FloatAttr32ビット浮動小数点属性
bias::mlir::FloatAttr32ビット浮動小数点属性
size::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
X 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型の値のテンソル

結果

結果 説明
Y 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型の値のテンソル

onnx.LSTM (ONNXLSTMOp)

ONNX LSTM演算

1層のLSTMを計算します。この演算子は通常、CuDNNなどのカスタム実装によってサポートされます。

記法

活性化関数

注:以下はオプションです。

方程式(デフォルト:f=Sigmoid, g=Tanh, h=Tanh)

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
activation_alpha::mlir::ArrayAttr32ビット浮動小数点配列属性
activation_beta::mlir::ArrayAttr32ビット浮動小数点配列属性
activations::mlir::ArrayAttr文字列配列属性
clip::mlir::FloatAttr32ビット浮動小数点属性
direction::mlir::StringAttr文字列属性
hidden_size::mlir::IntegerAttr64ビット符号付き整数属性
input_forget::mlir::IntegerAttr64ビット符号付き整数属性
layout::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
X 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル
W 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル
R 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル
B 16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、または none 型
sequence_lens 32ビット符号なし整数値のテンソル、または None 型
initial_h 16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、または none 型
initial_c 16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、または none 型
P 16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、または none 型

結果

結果 説明
Y 16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、または none 型
Y_h 16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、または none 型
Y_c 16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、または none 型

onnx.LabelEncoder (ONNXLabelEncoderOp)

ONNX LabelEncoder演算

入力テンソルの各要素を別の値にマッピングします。
マッピングは、2つの並列属性である「keys_」と「values_」属性によって決定されます。指定された「keys_」属性のi番目の値は、指定された「values_」属性のi番目の値にマッピングされます。これは、入力の要素型と指定された「keys_」の要素型が同じである必要があり、出力型が指定された「values_」属性と同じであることを意味します。入力要素が指定された「keys_」属性に見つからない場合、指定された「values_」属性に一致する「default_」が出力値として使用される場合があります。
文字列テンソルを整数テンソルにマッピングする例を考えてみましょう。「keys_strings」が["Amy", "Sally"]、「values_int64s」が[5, 6]、「default_int64」が'-1'であると仮定します。入力["Dori", "Amy", "Amy", "Sally", "Sally"]は[-1, 5, 5, 6, 6]にマッピングされます。
この演算子は1対1のマッピングであるため、入力と出力の形状は同じです。「keys_
」/「values_」のうち、設定できるのは1つのみであることに注意してください。
キーの検索にはビット単位の比較が使用されるため、浮動小数点NaNでも「values_
」属性の値にマッピングできます。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
default_float::mlir::FloatAttr32ビット浮動小数点属性
default_int64::mlir::IntegerAttr64ビット符号付き整数属性
default_string::mlir::StringAttr文字列属性
keys_floats::mlir::ArrayAttr32ビット浮動小数点配列属性
keys_int64s::mlir::ArrayAttr64ビット整数配列属性
keys_strings::mlir::ArrayAttr文字列配列属性
values_floats::mlir::ArrayAttr32ビット浮動小数点配列属性
values_int64s::mlir::ArrayAttr64ビット整数配列属性
values_strings::mlir::ArrayAttr文字列配列属性

オペランド

オペランド 説明
X 文字列型の値のテンソル、または64ビット符号なし整数値のテンソル、または32ビット浮動小数点値のテンソル

結果

結果 説明
Y 文字列型の値のテンソル、または64ビット符号なし整数値のテンソル、または32ビット浮動小数点値のテンソル

onnx.LayerNormalization (ONNXLayerNormalizationOp)

ONNX LayerNormalization演算

これは、ONNXで関数として定義されたレイヤー正規化です。全体的な計算は、2つの段階に分割できます。最初の段階は標準化であり、正規化された要素がゼロ平均と単位分散を持つようにします。標準化に必要な計算は、次の式で記述できます。 Mean = ReduceMean<axes=normalized_axes>(X) D = Sub(X, Mean) DD = Mul(D, D) Var = ReduceMean<axes=normalized_axes>(DD) VarEps = Add(Var, epsilon) StdDev = Sqrt(VarEps) InvStdDev = Reciprocal(StdDev) Normalized = Mul(D, InvStdDev) ここで、normalized_axes[axis, ..., rank of X - 1]です。変数VarStdDevは、それぞれ分散と標準偏差を表します。2番目の出力はMeanであり、最後の出力はInvStdDevです。stash_type属性に応じて、実際の計算は異なる浮動小数点精度で行われる必要があります。たとえば、stash_typeが1の場合、この演算子はすべての入力変数を32ビット浮動小数点にキャストし、計算を実行し、最後にNormalizedXの元の型に戻します。次に、2番目の段階では、 NormalizedScaled = Mul(Normalized, Scale) Y = Add(NormalizedScaled, B) を使用して、最初の段階の結果をスケーリングおよびシフトします。2番目の段階は、stash_typeに依存しません。すべての方程式は、この構文にあります。上記の方程式とこの演算子の定義では、同じ変数(つまり、入力、出力、および属性)に同じ名前が使用されています。d[i]Xのi番目の次元を示すとします。Xの形状が[d[0], ..., d[axis-1], d[axis], ..., d[rank-1]]の場合、MeanInvStdDevの形状は[d[0], ..., d[axis-1], 1, ..., 1]です。YXの形状は同じです。この演算子は、一方向ブロードキャストをサポートします(テンソルScaleBは、テンソルXに一方向ブロードキャスト可能である必要があります)。詳細については、ドキュメントを確認してください。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
axis::mlir::IntegerAttr64ビット符号付き整数属性
epsilon::mlir::FloatAttr32ビット浮動小数点属性
stash_type::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
X 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型の値のテンソル
Scale 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型の値のテンソル
B 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型の値のテンソル、またはNone型

結果

結果 説明
Y 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型の値のテンソル
Mean 32ビット浮動小数点値のテンソル、bfloat16型の値のテンソル、またはnone型
InvStdDev 32ビット浮動小数点値のテンソル、bfloat16型の値のテンソル、またはnone型

onnx.LayoutTransform (ONNXLayoutTransformOp)

異なるレイアウト形式間でデータを変換する操作

テンソルをあるレイアウトから別のレイアウトに変換する操作。レイアウトは、属性(target_layoutなど)によって定義され、この操作は任意のレイアウト(アクセラレータで使用されるレイアウトなど)で機能できます。

target_layoutはオプションです。指定されていない場合、入力テンソルはレイアウトを持たない通常のテンソルに変換されます。

target_layoutが入力のレイアウトと同じ場合、この操作は正準化によって何もしない操作になります。

入力および出力テンソルは同じ形状でなければなりません。

この操作は標準の一部ではなく、onnx-mlir を支援するために追加されました。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
target_layout::mlir::Attributeレイアウト属性

オペランド

オペランド 説明
data 16ビット浮動小数点または32ビット浮動小数点値のテンソル

結果

結果 説明
出力 16ビット浮動小数点または32ビット浮動小数点値のテンソル

onnx.LeakyRelu (ONNXLeakyReluOp)

ONNX LeakyRelu演算

LeakyReluは、入力データ(テンソル)と引数alphaを取り、1つの出力データ(テンソル)を生成します。ここで、関数 `f(x) = alpha * x for x < 0`、`f(x) = x for x >= 0` がデータテンソルに要素ごとに適用されます。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
alpha::mlir::FloatAttr32ビット浮動小数点属性

オペランド

オペランド 説明
X bfloat16 型値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

結果

結果 説明
Y bfloat16 型値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

onnx.Less (ONNXLessOp)

ONNX Less演算

入力テンソルABに対して、要素ごとにless論理演算を実行した結果のテンソルを返します(Numpyスタイルのブロードキャストサポート付き)。

この演算子は、多方向(つまり、NumPyスタイル)のブロードキャストをサポートしています。詳細については、ドキュメントを参照してください。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
A 8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型値のテンソル
B 8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型値のテンソル

結果

結果 説明
C 1ビット符号なし整数値のテンソル

onnx.LessOrEqual (ONNXLessOrEqualOp)

ONNX LessOrEqual演算

入力テンソルABに対して、要素ごとにless_equal論理演算を実行した結果のテンソルを返します(Numpyスタイルのブロードキャストサポート付き)。

この演算子は、多方向(つまり、NumPyスタイル)のブロードキャストをサポートしています。詳細については、ドキュメントを参照してください。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
A 8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型値のテンソル
B 8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型値のテンソル

結果

結果 説明
C 1ビット符号なし整数値のテンソル

onnx.LinearClassifier (ONNXLinearClassifierOp)

ONNX LinearClassifier演算

線形分類器

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
classlabels_ints::mlir::ArrayAttr64ビット整数配列属性
classlabels_strings::mlir::ArrayAttr文字列配列属性
coefficients::mlir::ArrayAttr32ビット浮動小数点配列属性
intercepts::mlir::ArrayAttr32ビット浮動小数点配列属性
multi_class::mlir::IntegerAttr64ビット符号付き整数属性
post_transform::mlir::StringAttr文字列属性

オペランド

オペランド 説明
X 32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、または64ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル

結果

結果 説明
Y 文字列型の値のテンソルまたは64ビット符号なし整数値のテンソル
Z 32ビット浮動小数点値のテンソル

onnx.LinearRegressor (ONNXLinearRegressorOp)

ONNX LinearRegressor演算

一般化線形回帰評価。
targetsが1(デフォルト)に設定されている場合、単変量回帰が実行されます。
targetsがMに設定されている場合、Mセットの係数をシーケンスとして渡す必要があり、Nの各入力nに対してMの結果が出力されます。
係数配列の長さはnであり、各ターゲットの係数は連続しています。切片はオプションですが、指定する場合はターゲット数と一致する必要があります。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
coefficients::mlir::ArrayAttr32ビット浮動小数点配列属性
intercepts::mlir::ArrayAttr32ビット浮動小数点配列属性
post_transform::mlir::StringAttr文字列属性
targets::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
X 32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、または64ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル

結果

結果 説明
Y 32ビット浮動小数点値のテンソル

onnx.Log (ONNXLogOp)

ONNX Log演算

指定された入力テンソルの自然対数を要素ごとに計算します。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
入力 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型の値のテンソル

結果

結果 説明
出力 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型の値のテンソル

onnx.LogSoftmax (ONNXLogSoftmaxOp)

ONNX LogSoftmax演算

この演算子は、指定された入力のソフトマックス値のログを計算します。

LogSoftmax(input, axis) = Log(Softmax(input, axis=axis))

「axis」属性は、LogSoftmaxが実行される次元を示します。出力テンソルは同じ形状を持ち、対応する入力のLogSoftmax値を含みます。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
axis::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
入力 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型の値のテンソル

結果

結果 説明
出力 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型の値のテンソル

onnx.Loop (ONNXLoopOp)

ONNX Loop演算

汎用的なループ構造。このループには複数の終了条件があります

1)トリップカウント。実行時に指定された反復回数。入力Mを指定することで設定されます。オプション。省略する場合は、空の文字列に設定します。入力Mに定数ノードを渡すことで、静的なトリップカウント(グラフ構築時に指定)を指定できることに注意してください。2)ループ終了条件。これは、最初の反復を実行するかどうかを決定する演算子への入力であり、本体グラフのループキャリー依存関係でもあります。本体グラフは、この入力が提供されているかどうかに関係なく、条件変数の値を生成する必要があります。

この表は、この演算子の動作モードを同等のCスタイルのコードでまとめたものです

演算子の入力は(max_trip_count, condition_var)として定義されます。

使用例 - cond およびトリップ回数

graph predict-net {
  %a = Constant[value = <Scalar Tensor [3]>]()
  %b = Constant[value = <Scalar Tensor [6]>]()
  %keepgoing = Constant[value = <Scalar Tensor [1]>]()
  %max_trip_count = Constant[value = <Scalar Tensor [10]>]()
  %keepgoing_out, %b_out, %user_defined_vals = Loop[body = <graph body-net>](%max_trip_count, %keepgoing, %b)
  return
}

graph body-net (
  %i[INT32, scalar]           // iteration number
  %keepgoing_in[BOOL, scalar] // incoming loop-termination-condition; not used
  %b_in[INT32, scalar]        // incoming value of loop-carried-dependency b
) {
  %my_local = Add(%a, %b_in)
  %b_out = Sub(%a, %b_in) // outgoing value of loop-carried-dependency b
  %keepgoing_out = Greater(%my_local, %b_out) // outgoing loop-termination-condition
  %user_defined_val = Add(%b_in, %b_in) // scan-output value to be accumulated
  return %keepgoing_out, %b_out, %user_defined_val
}

C言語の同等のコード例

{
  /* User-defined code (enclosing scope) */
  int a = 3, b = 6;
  bool keepgoing = true; // Analogous to input cond
  /* End user-defined code */

  /* Implicitly-defined code */
  const int max_trip_count = 10; // Analogous to input M
  int user_defined_vals[]; // Imagine this is resizable
  /* End implicitly-defined code */
  /* initialize loop-carried variables and scan-output variables */
  bool keepgoing_out = keepgoing
  int b_out = b

  for (int i=0; i < max_trip_count && keepgoing_out; ++i) {
    /* Implicitly-defined code: bind actual parameter values
       to formal parameter variables of loop-body */
    bool keepgoing_in = keepgoing_out;
    bool b_in = b_out;

    /* User-defined code (loop body) */
    int my_local = a + b_in; // Reading value \"a\" from the enclosing scope is fine
    b_out = a - b_in;
    keepgoing_out = my_local > b_out;
    user_defined_val = b_in + b_in; // b_in and b_out are different variables
    /* End user-defined code */

    /* Implicitly defined-code */
    user_defined_vals[i] = user_defined_val // accumulate scan-output values
  }
  // int t = my_local; // Can't do this. my_local is not accessible here.

  // The values below are bound to the output variables of the loop and therefore accessible
  // b_out; user_defined_vals; keepgoing_out;
}

このコードスニペットには注目すべき点がいくつかあります。

1) 外側のスコープからの値(例えば、ここでの変数 "a")はスコープ内にあり、ループの入力で参照できます。2) ループ本体で計算された値で、後続のイテレーションまたはループ後に使用する必要があるものは、ループ本体内の変数のペアでモデル化されます。これは、入力変数(例:b_in)と出力変数(例:b_out)で構成されます。これらはループ持ち越し依存と呼ばれます。ループ操作ノードは、最初のイテレーションの入力変数の入力値を供給し、最後のイテレーションで生成された出力変数の出力値を返します。3) scan_output変数は、すべてのイテレーションで計算された値を暗黙的に連結するために使用されます。上記の例では、すべてのイテレーションで計算されたuser_defined_valの値が連結され、ループ後にuser_defined_valsの値として返されます。4) 上記のメカニズムを使用する場合を除き、本体で作成された値は外側のスコープでアクセスできません。

このopのセマンティクスは、「対角」または「波面」実行をサポートしていることに注意してください。(例については、こちらの手順3を参照してください:https://devblogs.nvidia.com/optimizing-recurrent-neural-networks-cudnn-5/)。フロントエンドは、多層RNNをWhile演算子の連続として(時間軸を内側のループ次元として)出力する必要があります。各後続レイヤーは、前のレイヤーからのscan_outputsを消費し、場合によっては複数のポイント単位演算子(例:ドロップアウト、残差接続、線形レイヤー)を経由します。

サブグラフ(ループノードによって生成される)のマッチングの入出力は、名前ではなく順序に基づいています。実装は、この順序に基づいて名前を把握します。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, HasOnnxSubgraphOpInterface, NoMemoryEffect (MemoryEffectOpInterface), ResultTypeInferenceOpInterface, ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
M 64ビット符号なし整数値のテンソルまたは none 型
cond 1 ビット符号なし整数値のテンソルまたは none 型
v_initial 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、bfloat16型値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型値のテンソル、64ビット浮動小数点要素を持つ複素数型値のテンソル、f8E4M3FN型値のテンソル、f8E4M3FNUZ型値のテンソル、f8E5M2型値のテンソル、f8E5M2FNUZ型値のテンソル、8ビット符号なし整数値のテンソルのSeqType、16ビット符号なし整数値のテンソルのSeqType、32ビット符号なし整数値のテンソルのSeqType、64ビット符号なし整数値のテンソルのSeqType、8ビット符号なし整数値のテンソルのSeqType、16ビット符号なし整数値のテンソルのSeqType、32ビット符号なし整数値のテンソルのSeqType、64ビット符号なし整数値のテンソルのSeqType、bfloat16型値のテンソルのSeqType、16ビット浮動小数点値のテンソルのSeqType、32ビット浮動小数点値のテンソルのSeqType、64ビット浮動小数点値のテンソルのSeqType、文字列型値のテンソルのSeqType、1ビット符号なし整数値のテンソルのSeqType、32ビット浮動小数点要素を持つ複素数型値のテンソルのSeqType、64ビット浮動小数点要素を持つ複素数型値のテンソルのSeqType、f8E4M3FN型値のテンソルのSeqType、f8E4M3FNUZ型値のテンソルのSeqType、f8E5M2型値のテンソルのSeqType、f8E5M2FNUZ型値のテンソルのSeqType、8ビット符号なし整数値のテンソルのSeqTypeのOptType、16ビット符号なし整数値のテンソルのSeqTypeのOptType、32ビット符号なし整数値のテンソルのSeqTypeのOptType、64ビット符号なし整数値のテンソルのSeqTypeのOptType、8ビット符号なし整数値のテンソルのSeqTypeのOptType、16ビット符号なし整数値のテンソルのSeqTypeのOptType、32ビット符号なし整数値のテンソルのSeqTypeのOptType、64ビット符号なし整数値のテンソルのSeqTypeのOptType、bfloat16型値のテンソルのSeqTypeのOptType、16ビット浮動小数点値のテンソルのSeqTypeのOptType、32ビット浮動小数点値のテンソルのSeqTypeのOptType、64ビット浮動小数点値のテンソルのSeqTypeのOptType、文字列型値のテンソルのSeqTypeのOptType、1ビット符号なし整数値のテンソルのSeqTypeのOptType、32ビット浮動小数点要素を持つ複素数型値のテンソルのSeqTypeのOptType、64ビット浮動小数点要素を持つ複素数型値のテンソルのSeqTypeのOptType、8ビット符号なし整数値のテンソルのOptType、16ビット符号なし整数値のテンソルのOptType、32ビット符号なし整数値のテンソルのOptType、64ビット符号なし整数値のテンソルのOptType、8ビット符号なし整数値のテンソルのOptType、16ビット符号なし整数値のテンソルのOptType、32ビット符号なし整数値のテンソルのOptType、64ビット符号なし整数値のテンソルのOptType、bfloat16型値のテンソルのOptType、16ビット浮動小数点値のテンソルのOptType、32ビット浮動小数点値のテンソルのOptType、64ビット浮動小数点値のテンソルのOptType、文字列型値のテンソルのOptType、1ビット符号なし整数値のテンソルのOptType、32ビット浮動小数点要素を持つ複素数型値のテンソルのOptType、64ビット浮動小数点要素を持つ複素数型値のテンソルのOptType、f8E4M3FN型値のテンソルのOptType、f8E4M3FNUZ型値のテンソルのOptType、f8E5M2型値のテンソルのOptType、f8E5M2FNUZ型値のテンソルのOptTypeの可変長リスト

結果

結果 説明
v_final_and_scan_outputs 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、bfloat16型値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型値のテンソル、64ビット浮動小数点要素を持つ複素数型値のテンソル、f8E4M3FN型値のテンソル、f8E4M3FNUZ型値のテンソル、f8E5M2型値のテンソル、f8E5M2FNUZ型値のテンソル、8ビット符号なし整数値のテンソルのSeqType、16ビット符号なし整数値のテンソルのSeqType、32ビット符号なし整数値のテンソルのSeqType、64ビット符号なし整数値のテンソルのSeqType、8ビット符号なし整数値のテンソルのSeqType、16ビット符号なし整数値のテンソルのSeqType、32ビット符号なし整数値のテンソルのSeqType、64ビット符号なし整数値のテンソルのSeqType、bfloat16型値のテンソルのSeqType、16ビット浮動小数点値のテンソルのSeqType、32ビット浮動小数点値のテンソルのSeqType、64ビット浮動小数点値のテンソルのSeqType、文字列型値のテンソルのSeqType、1ビット符号なし整数値のテンソルのSeqType、32ビット浮動小数点要素を持つ複素数型値のテンソルのSeqType、64ビット浮動小数点要素を持つ複素数型値のテンソルのSeqType、f8E4M3FN型値のテンソルのSeqType、f8E4M3FNUZ型値のテンソルのSeqType、f8E5M2型値のテンソルのSeqType、f8E5M2FNUZ型値のテンソルのSeqType、8ビット符号なし整数値のテンソルのSeqTypeのOptType、16ビット符号なし整数値のテンソルのSeqTypeのOptType、32ビット符号なし整数値のテンソルのSeqTypeのOptType、64ビット符号なし整数値のテンソルのSeqTypeのOptType、8ビット符号なし整数値のテンソルのSeqTypeのOptType、16ビット符号なし整数値のテンソルのSeqTypeのOptType、32ビット符号なし整数値のテンソルのSeqTypeのOptType、64ビット符号なし整数値のテンソルのSeqTypeのOptType、bfloat16型値のテンソルのSeqTypeのOptType、16ビット浮動小数点値のテンソルのSeqTypeのOptType、32ビット浮動小数点値のテンソルのSeqTypeのOptType、64ビット浮動小数点値のテンソルのSeqTypeのOptType、文字列型値のテンソルのSeqTypeのOptType、1ビット符号なし整数値のテンソルのSeqTypeのOptType、32ビット浮動小数点要素を持つ複素数型値のテンソルのSeqTypeのOptType、64ビット浮動小数点要素を持つ複素数型値のテンソルのSeqTypeのOptType、8ビット符号なし整数値のテンソルのOptType、16ビット符号なし整数値のテンソルのOptType、32ビット符号なし整数値のテンソルのOptType、64ビット符号なし整数値のテンソルのOptType、8ビット符号なし整数値のテンソルのOptType、16ビット符号なし整数値のテンソルのOptType、32ビット符号なし整数値のテンソルのOptType、64ビット符号なし整数値のテンソルのOptType、bfloat16型値のテンソルのOptType、16ビット浮動小数点値のテンソルのOptType、32ビット浮動小数点値のテンソルのOptType、64ビット浮動小数点値のテンソルのOptType、文字列型値のテンソルのOptType、1ビット符号なし整数値のテンソルのOptType、32ビット浮動小数点要素を持つ複素数型値のテンソルのOptType、64ビット浮動小数点要素を持つ複素数型値のテンソルのOptType、f8E4M3FN型値のテンソルのOptType、f8E4M3FNUZ型値のテンソルのOptType、f8E5M2型値のテンソルのOptType、f8E5M2FNUZ型値のテンソルのOptTypeの可変長リスト

onnx.LpNormalization (ONNXLpNormalizationOp)

ONNX LpNormalization 操作

与えられた行列に対して、指定された軸に沿ってLp正規化を適用します。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
axis::mlir::IntegerAttr64ビット符号付き整数属性
p::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
入力 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

結果

結果 説明
出力 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

onnx.LpPool (ONNXLpPoolOp)

ONNX LpPool 操作

LpPoolは入力テンソルXを消費し、カーネルサイズ、ストライドサイズ、およびパディング長に従ってテンソル全体にLpプーリングを適用します。Lpプーリングは、カーネルサイズに従って入力テンソルの一部すべての値に対してLpノルムを計算し、データを出力テンソルYにダウンサンプリングしてさらに処理を行います。出力空間形状は次のようになります。

 output_spatial_shape[i] = floor((input_spatial_shape[i] + pad_shape[i] - {kernelSpatialShape}) / strides_spatial_shape[i] + 1)

または

 output_spatial_shape[i] = ceil((input_spatial_shape[i] + pad_shape[i] - {kernelSpatialShape}) / strides_spatial_shape[i] + 1)

ceil_modeが有効になっている場合、pad_shape[i]は軸iに沿ったパディングの合計です。

auto_padは非推奨の属性です。現在使用している場合、出力空間形状は次のようになります。

 VALID: output_spatial_shape[i] = ceil((input_spatial_shape[i] - {kernelSpatialShape} + 1) / strides_spatial_shape[i])
 SAME_UPPER or SAME_LOWER: output_spatial_shape[i] = ceil(input_spatial_shape[i] / strides_spatial_shape[i])

また、SAME_UPPER または SAME_LOWER の場合、パッド形状は次のようになります。

 pad_shape[i] = (output_spatial_shape[i] - 1) * strides_spatial_shape[i] + {kernelSpatialShape} - input_spatial_shape[i]

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
auto_pad::mlir::StringAttr文字列属性
ceil_mode::mlir::IntegerAttr64ビット符号付き整数属性
dilations::mlir::ArrayAttr64ビット整数配列属性
kernel_shape::mlir::ArrayAttr64ビット整数配列属性
p::mlir::IntegerAttr64ビット符号付き整数属性
pads::mlir::ArrayAttr64ビット整数配列属性
strides::mlir::ArrayAttr64ビット整数配列属性

オペランド

オペランド 説明
X 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

結果

結果 説明
Y 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

onnx.MatMulInteger (ONNXMatMulIntegerOp)

ONNX MatMulInteger 操作

numpy.matmulのように動作する行列積。積は決してオーバーフローしてはなりません。累積は、32ビットの場合にのみオーバーフローする可能性があります。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
A 8ビット符号なし整数値のテンソルまたは8ビット符号なし整数値のテンソル
B 8ビット符号なし整数値のテンソルまたは8ビット符号なし整数値のテンソル
a_zero_point 8ビット符号なし整数値のテンソル、8ビット符号なし整数値のテンソル、または none 型
b_zero_point 8ビット符号なし整数値のテンソル、8ビット符号なし整数値のテンソル、または none 型

結果

結果 説明
Y 32ビット符号なし整数値のテンソル

onnx.MatMul (ONNXMatMulOp)

ONNX MatMul 操作

numpy.matmulのように動作する行列積。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
A 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、またはbfloat16型値のテンソル
B 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、またはbfloat16型値のテンソル

結果

結果 説明
Y 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、またはbfloat16型値のテンソル

onnx.Max (ONNXMaxOp)

ONNX Max 操作

各入力テンソルの要素ごとの最大値(Numpyスタイルのブロードキャストをサポート)。すべての入力と出力は同じデータ型である必要があります。この演算子は、多方向(つまり、Numpyスタイル)ブロードキャストをサポートしています。詳細については、ドキュメントを確認してください。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
data_0 8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型の値のテンソルの可変長引数

結果

結果 説明
max 8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型値のテンソル

onnx.MaxPool (ONNXMaxPoolOp)

ONNX MaxPool 操作

MaxPoolは入力テンソルXを消費し、カーネルサイズ、ストライドサイズ、およびパディング長に従ってテンソル全体に最大プーリングを適用します。最大プーリングは、カーネルサイズに従って入力テンソルの一部すべての値に対して最大値を計算し、データを出力テンソルYにダウンサンプリングしてさらに処理を行います。出力空間形状は、明示的なパディングが使用されている場合(padsが使用される場合)と、自動パディングが使用されている場合(auto_padが使用される場合)で計算方法が異なります。明示的なパディング(https://pytorch.org/docs/stable/generated/torch.nn.MaxPool2d.html?highlight=maxpool#torch.nn.MaxPool2d)の場合。

 output_spatial_shape[i] = floor((input_spatial_shape[i] + pad_shape[i] - dilation[i] * (kernel_shape[i] - 1) - 1) / strides_spatial_shape[i] + 1)

または

 output_spatial_shape[i] = ceil((input_spatial_shape[i] + pad_shape[i] - dilation[i] * (kernel_shape[i] - 1) - 1) / strides_spatial_shape[i] + 1)

ceil_mode が有効になっている場合。pad_shape[i] は、軸 i に沿ったパッドの合計です。

auto_pad は非推奨の属性です。現在使用している場合、ceil_mode が有効になっている場合、出力空間形状は次のようになります。

 VALID: output_spatial_shape[i] = ceil((input_spatial_shape[i] - ((kernel_spatial_shape[i] - 1) * dilations[i] + 1) + 1) / strides_spatial_shape[i])
 SAME_UPPER or SAME_LOWER: output_spatial_shape[i] = ceil(input_spatial_shape[i] / strides_spatial_shape[i])

または、ceil_mode が無効になっている場合(https://www.tensorflow.org/api_docs/python/tf/keras/layers/AveragePooling2D)

 VALID: output_spatial_shape[i] = floor((input_spatial_shape[i] - ((kernel_spatial_shape[i] - 1) * dilations[i] + 1)) / strides_spatial_shape[i]) + 1
 SAME_UPPER or SAME_LOWER: output_spatial_shape[i] = floor((input_spatial_shape[i] - 1) / strides_spatial_shape[i]) + 1

また、SAME_UPPER または SAME_LOWER の場合、パッド形状は次のようになります。

 pad_shape[i] = (output_spatial_shape[i] - 1) * strides_spatial_shape[i] + ((kernel_spatial_shape[i] - 1) * dilations[i] + 1) - input_spatial_shape[i]

各プーリングウィンドウの出力は、パディングを除く要素の最大数です。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
auto_pad::mlir::StringAttr文字列属性
ceil_mode::mlir::IntegerAttr64ビット符号付き整数属性
dilations::mlir::ArrayAttr64ビット整数配列属性
kernel_shape::mlir::ArrayAttr64ビット整数配列属性
pads::mlir::ArrayAttr64ビット整数配列属性
storage_order::mlir::IntegerAttr64ビット符号付き整数属性
strides::mlir::ArrayAttr64ビット整数配列属性

オペランド

オペランド 説明
X 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、または8ビット符号なし整数値のテンソル、または8ビット符号なし整数値のテンソル

結果

結果 説明
Y 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、または8ビット符号なし整数値のテンソル、または8ビット符号なし整数値のテンソル
Indices 64ビット符号なし整数値のテンソルまたは none 型

onnx.MaxPoolSingleOut (ONNXMaxPoolSingleOutOp)

単一出力を持つ ONNX MaxPool 操作。

単一出力を持つ ONNX MaxPool 操作。MaxPoolのセマンティクスの詳細については、ONNXMaxPoolOpを参照してください。

この操作は標準の一部ではなく、onnx-mlir を支援するために追加されました。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
auto_pad::mlir::StringAttr文字列属性
ceil_mode::mlir::IntegerAttr64ビット符号付き整数属性
dilations::mlir::ArrayAttr64ビット整数配列属性
kernel_shape::mlir::ArrayAttr64ビット整数配列属性
pads::mlir::ArrayAttr64ビット整数配列属性
storage_order::mlir::IntegerAttr64ビット符号付き整数属性
strides::mlir::ArrayAttr64ビット整数配列属性

オペランド

オペランド 説明
X 任意の型値の memref または任意の型値のテンソル

結果

結果 説明
o_Y 任意の型値の memref または任意の型値のテンソル

onnx.MaxRoiPool (ONNXMaxRoiPoolOp)

ONNX MaxRoiPool 操作

ROI最大プーリングは、入力テンソルXと関心領域(RoI)を消費して、各RoIに最大プーリングを適用し、(num_rois、channels、pooled_shape[0]、pooled_shape[1])の形状の出力4Dテンソルを生成します。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
pooled_shape::mlir::ArrayAttr64ビット整数配列属性
spatial_scale::mlir::FloatAttr32ビット浮動小数点属性

オペランド

オペランド 説明
X 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル
rois 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

結果

結果 説明
Y 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

onnx.MaxUnpool (ONNXMaxUnpoolOp)

ONNX MaxUnpool 操作

MaxUnpoolは、基本的にMaxPool opの部分的逆演算を計算します。このopへの入力情報は、通常、MaxPool opからの出力情報です。最初の入力テンソルXは、アンプーリングする必要があるテンソルであり、通常はMaxPoolからのプーリングされたテンソル(最初の出力)です。2番目の入力テンソルIには、最初の入力テンソルXの要素に対応する(局所的に最大の)要素のインデックスが含まれています。入力テンソルIは、通常、MaxPool opの2番目の出力です。3番目(オプション)の入力は、アンプーリング操作の出力サイズを指定するテンソルです。

MaxUnpoolは、MaxPool opの「部分的」逆演算を実行することを目的としています。「部分的」なのは、MaxPoolへの元の入力からの最大値ではないすべての値が、MaxUnpool opの出力でゼロに設定されるためです。アンプーリング操作の結果をプーリングすると、アンプーリングopへの元の入力が戻るはずです。

MaxUnpoolは、複数の入力サイズに対して同じ出力サイズを生成できるため、アンプーリングopはあいまいです。3番目の入力引数であるoutput_sizeは、opを明確にし、既知/予測可能なサイズの出力テンソルを生成することを目的としています。

入力に加えて、MaxUnpoolは、カーネル形状、ストライド、およびパッドという3つの属性を取ります。これらは、アンプーリングopが反転しようとしている対応するプーリングopと同じ値を通常持ちます。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
kernel_shape::mlir::ArrayAttr64ビット整数配列属性
pads::mlir::ArrayAttr64ビット整数配列属性
strides::mlir::ArrayAttr64ビット整数配列属性

オペランド

オペランド 説明
X 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル
I 64ビット符号なし整数値のテンソル
output_shape 64ビット符号なし整数値のテンソルまたは none 型

結果

結果 説明
出力 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

onnx.Mean (ONNXMeanOp)

ONNX Mean 操作

各入力テンソルの要素ごとの平均値(Numpyスタイルのブロードキャストをサポート)。すべての入力と出力は同じデータ型である必要があります。この演算子は、多方向(つまり、Numpyスタイル)ブロードキャストをサポートしています。詳細については、ドキュメントを確認してください。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
data_0 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型の値のテンソルの可変長引数

結果

結果 説明
mean 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型の値のテンソル

onnx.MeanVarianceNormalization (ONNXMeanVarianceNormalizationOp)

ONNX MeanVarianceNormalization 操作

MeanVarianceNormalization関数:次の式を使用して、入力テンソルXに対して平均分散正規化を実行します:(X-EX)/sqrt(E(X-EX)^2)

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
axes::mlir::ArrayAttr64ビット整数配列属性

オペランド

オペランド 説明
X 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型の値のテンソル

結果

結果 説明
Y 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型の値のテンソル

onnx.MelWeightMatrix (ONNXMelWeightMatrixOp)

ONNX MelWeightMatrix 操作

メルスケールでの[lower_edge_hertz, upper_edge_hertz]範囲に基づいて、線形にサンプリングされた周波数スペクトル(DFTまたはSTFTから)を含むテンソルをnum_mel_bins周波数情報に再重み付けするために使用できるMelWeightMatrixを生成します。この関数は、次の式に従って、ヘルツ単位の周波数に関してメルスケールを定義します。

mel(f) = 2595 * log10(1 + f/700)

返された行列では、すべての三角形(フィルターバンク)のピーク値は1.0です。

返されたMelWeightMatrixは、線形スケールスペクトル値(例えば、STFT振幅)の形状[frames, num_spectrogram_bins]のスペクトログラムSを右乗算して、形状[frames, num_mel_bins]の「メルスペクトログラム」Mを生成するために使用できます。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
output_datatype::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
num_mel_bins 32ビット符号なし整数値のテンソルまたは64ビット符号なし整数値のテンソル
dft_length 32ビット符号なし整数値のテンソルまたは64ビット符号なし整数値のテンソル
sample_rate 32ビット符号なし整数値のテンソルまたは64ビット符号なし整数値のテンソル
lower_edge_hertz 32ビット浮動小数点値のテンソル、または16ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型の値のテンソル
upper_edge_hertz 32ビット浮動小数点値のテンソル、または16ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型の値のテンソル

結果

結果 説明
出力 8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型値のテンソル

onnx.Min (ONNXMinOp)

ONNX Min 操作

各入力テンソルの要素ごとの最小値(Numpyスタイルのブロードキャストをサポート)。すべての入力と出力は同じデータ型である必要があります。この演算子は、多方向(つまり、Numpyスタイル)ブロードキャストをサポートしています。詳細については、ドキュメントを確認してください。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
data_0 8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型の値のテンソルの可変長引数

結果

結果 説明
min 8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型値のテンソル

onnx.Mish (ONNXMishOp)

ONNX Mish 操作

Mish:自己正規化された非単調ニューラル活性化関数。

次の式を使用して、入力テンソルXに対して要素単位で線形ユニットを実行します。

mish(x) = x * tanh(softplus(x)) = x * tanh(ln(1 + e^{x}))

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
X 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

結果

結果 説明
Y 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

onnx.Mod (ONNXModOp)

ONNX Mod 操作

要素ごとのバイナリ剰余を実行します(Numpyスタイルのブロードキャストをサポート)。剰余の符号は除数の符号と同じです。

Mod演算子は、C言語のfmod()やnumpy.fmodのように動作することもできます。この場合、剰余の符号は被除数と同じになります(整数modとは対照的)。numpy.fmod()のような動作を強制するには、'fmod'属性を使用します。この属性はデフォルトで0に設定されており、整数modのような動作になります。この属性を1に設定すると、剰余はnumpy.fmod()と同様に計算されます。

入力型が浮動小数点の場合、fmod属性は1に設定する必要があります。

被除数がゼロの場合、結果はプラットフォームに依存します。

この演算子は、多方向(つまり、NumPyスタイル)のブロードキャストをサポートしています。詳細については、ドキュメントを参照してください。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
fmod::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
A 8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型値のテンソル
B 8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型値のテンソル

結果

結果 説明
C 8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型値のテンソル

onnx.Momentum (ONNXMomentumOp)

ONNX Momentum演算

モメンタムを用いた確率的勾配更新の1回のイテレーションを計算します。この演算子は、複数のテンソル変数の最適化を実行できます。

Let's define the behavior of this operator. As you can imagine, SG with momentum requires
several parameters:

 - The learning-rate \"R\".
 - The update count \"T\". That is, the number of conducted training iterations. It should
   be zero in the first training iteration.
 - A L2-norm regularization coefficient \"norm_coefficient\".
 - A decay coefficient of previous accumulated gradient (i.e., momentum) \"alpha\".
 - The scaling coefficient of current gradient \"beta\".
 - An attribute to choose either standard momentum or Nesterov's momentum \"mode\" should
   be used.

For the sake of simplicity, assume that there is only one tensor (called \"X\") to be optimized.
Other necessary inputs are \"X\"'s gradient (called \"G\") and \"X\"'s momentum (called \"V\"). This
Momentum operator maps all these inputs to the new value of \"X\" (called \"X_new\") and its new
momentum (called \"V_new\").

This operator supports two different momentum algorithms. Set the attribute \"mode\" to
\"nesterov\" if Nesterov's momentum is desired. Otherwise, set the attribute \"model\" to
\"standard\" to use standard momentum. Computation details are described subsequently.

Let \"+\", \"-\", \"*\", and \"/\" are all element-wise operations with numpy-style broadcasting.

Pseudo code for SG with standard momentum:

  // Add gradient of 0.5 * norm_coefficient * ||X||^2, where ||X|| is the sum of squared
  // values of all elements in X.
  G_regularized = norm_coefficient * X + G

  // In the first training iteration, beta should always be 1.
  beta_adjusted = T > 0 ? beta : 1

  // Compute the current momentum based on previous momentum and the current gradient.
  V_new = alpha * V + beta_adjusted * G_regularized

  // Update X.
  X_new = X - R * V_new

Pseudo code for SG with Nesterov's momentum:

  // Add gradient of 0.5 * norm_coefficient * ||X||^2, where ||X|| is the sum of squared
  // values of all elements in X.
  G_regularized = norm_coefficient * X + G;

  // In the first training iteration, beta should always be 1.
  beta_adjusted = T > 0 ? beta : 1

  // Compute the current momentum based on previous momentum and the current gradient.
  V_new = alpha * V + beta_adjusted * G_regularized;

  // Compute final update direction and then update X.
  X_new = X - R * (G_regularized + alpha * V_new)

If one assign this operators to optimize multiple inputs, for example, \"X_1\" and \"X_2\". The same
pseudo code would be extended to handle all tensors jointly. More specifically, we can view \"X\" as a
concatenation of \"X_1\" and \"X_2\" (of course, their gradient and accumulate gradient should
be concatenated too) and then our pseudo code becomes applicable.

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
alpha::mlir::FloatAttr32ビット浮動小数点属性
beta::mlir::FloatAttr32ビット浮動小数点属性
mode::mlir::StringAttr文字列属性
norm_coefficient::mlir::FloatAttr32ビット浮動小数点属性

オペランド

オペランド 説明
R 32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル
T 64ビット符号なし整数値のテンソル
入力 可変長の32ビット浮動小数点値のテンソルまたは64ビット浮動小数点値のテンソル

結果

結果 説明
出力 可変長の32ビット浮動小数点値のテンソルまたは64ビット浮動小数点値のテンソル

onnx.Mul (ONNXMulOp)

ONNX Mul演算

要素ごとの二項乗算を実行します(Numpyスタイルのブロードキャストをサポート)。

この演算子は、多方向(つまり、NumPyスタイル)のブロードキャストをサポートしています。詳細については、ドキュメントを参照してください。

(Opset 14 の変更):uint8、int8、uint16、および int16 を含むようにサポートされる型を拡張しました。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
A 8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型値のテンソル
B 8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型値のテンソル

結果

結果 説明
C 8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型値のテンソル

onnx.Multinomial (ONNXMultinomialOp)

ONNX Multinomial演算

起こりうる各結果の確率に従って、多項分布からのサンプルテンソルを生成します。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
dtype::mlir::IntegerAttr64ビット符号付き整数属性
sample_size::mlir::IntegerAttr64ビット符号付き整数属性
seed::mlir::FloatAttr32ビット浮動小数点属性

オペランド

オペランド 説明
入力 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

結果

結果 説明
出力 32ビット符号なし整数値のテンソルまたは64ビット符号なし整数値のテンソル

onnx.Neg (ONNXNegOp)

ONNX Neg演算

Negは、各要素の符号を反転させた1つの入力データ(テンソル)を受け取り、1つの出力データ(Tensor)を受け取り、y = -xをテンソル要素ごとに適用します。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
X 32ビット浮動小数点値のテンソル、32ビット符号なし整数値のテンソル、8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、16ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、またはbfloat16型値のテンソル

結果

結果 説明
Y 32ビット浮動小数点値のテンソル、32ビット符号なし整数値のテンソル、8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、16ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、またはbfloat16型値のテンソル

onnx.NegativeLogLikelihoodLoss (ONNXNegativeLogLikelihoodLossOp)

ONNX NegativeLogLikelihoodLoss演算

NegativeLogLikelihoodLoss演算子は、(重み付き)負の対数尤度損失を計算します。その "input" テンソルは、(N, C, d1, d2, …, dk) の形状を持ち、k >= 0です。"input" テンソルには、input[n, :, d_1, d_2,…, d_k]が[0, C)のクラスに属する確率の対数が含まれています。演算子の "target" 入力テンソルは、(N, d1, d2, …, dk) の形状を持ちます。これはクラスラベル(C個のクラスのうちの1つ)をエンコードするか、N x d1 x d2 x … x dk個のサンプルに対して、特別な値(ignore_index属性で示される)を含めることができます。input[n, :, d_1, d_2,…d_k]がクラスc = target[n][d_1][d_2]…[d_k]として分類された場合の損失値は、次のように計算されます。

loss[n][d_1][d_2]...[d_k] = -input[n][c][d_1][d_2]...[d_k].

オプションの "weight" が提供されている場合、サンプル損失は次のように計算されます。

loss[n][d_1][d_2]...[d_k] = -input[n][c][d_1][d_2]...[d_k] * weight[c].

target値がignore_indexに等しい場合、損失はゼロになります。

loss[n][d_1][d_2]...[d_k] = 0, when target[n][d_1][d_2]...[d_k] = ignore_index

"reduction"属性が "none" に設定されている場合、演算子の出力は、上記の損失で形状が (N, d1, d2, …, dk) になります。"reduction"属性が "mean"(デフォルトの属性値)に設定されている場合、出力損失は(重み付き)平均されます。

mean(loss), if \"weight\" is not provided,

または、重みが提供されている場合は、

sum(loss) / sum(weight[target[n][d_1][d_2]...[d_k]]]), for all samples.

"reduction"属性が "sum" に設定されている場合、出力はスカラーになります:sum(loss)

https://pytorch.org/docs/stable/nn.html#torch.nn.NLLLoss も参照してください。

例 1

// negative log likelihood loss, \"none\" reduction
N, C, d1 = 2, 3, 2
input = [[[1.0, 2.0], [2.0, 2.0], [3.0, 2.0]],
          [[0.0, 1.0], [2.0, 2.0], [1.0, 2]]]
target = [[2, 1], [0, 2]]

loss = np.zeros((N, d1))
for n in range(N):
    for d_1 in range(d1):
        c = target[n][d_1]
        loss[n][d_1] = -input[n][c][d_1]

// print(loss)
// [[-3. -2.]
//  [-0. -2.]]

例 2

// weighted negative log likelihood loss, sum reduction
N, C, d1 = 2, 3, 2
input = [[[1.0, 2.0], [2.0, 2.0], [3.0, 2.0]],
        [[0.0, 1.0], [2.0, 2.0], [1.0, 2]]]
target = [[2, 1], [0, 2]]
weight = [0.2, 0.3, 0.1]
loss = np.zeros((N, d1))
for n in range(N):
    for d_1 in range(d1):
        c = target[n][d_1]
        loss[n][d_1] = -input[n][c][d_1] * weight[c]

loss = np.sum(loss)
// print(loss)
// -1.1

例 3

// weighted negative log likelihood loss, mean reduction
N, C, d1 = 2, 3, 2
input = [[[1.0, 2.0], [2.0, 2.0], [3.0, 2.0]],
        [[0.0, 1.0], [2.0, 2.0], [1.0, 2]]]
target = [[2, 1], [0, 2]]
weight = [0.2, 0.3, 0.1]
loss = np.zeros((N, d1))
weight_total = 0
for n in range(N):
    for d_1 in range(d1):
        c = target[n][d_1]
        loss[n][d_1] = -input[n][c][d_1] * weight[c]
        weight_total = weight_total + weight[c]

loss = np.sum(loss) / weight_total
// print(loss)
// -1.57

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
ignore_index::mlir::IntegerAttr64ビット符号付き整数属性
reduction::mlir::StringAttr文字列属性

オペランド

オペランド 説明
入力 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル
target 32ビット符号なし整数値のテンソルまたは64ビット符号なし整数値のテンソル
weight 16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、または none 型

結果

結果 説明
loss 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

onnx.NonMaxSuppression (ONNXNonMaxSuppressionOp)

ONNX NonMaxSuppression演算

以前に選択されたボックスと高いインターセクションオーバーユニオン(IOU)の重複を持つボックスをフィルタリングします。スコアがscore_thresholdより小さい境界ボックスは削除されます。境界ボックスの形式は、属性center_point_boxで示されます。このアルゴリズムは、座標系の原点がどこにあるかに依存せず、より一般的には座標系の直交変換および並進に対して不変であることに注意してください。したがって、座標系の並進または反射は、アルゴリズムによって選択されるボックスは同じになります。selected_indices出力は、選択されたボックスを表す境界ボックスの入力コレクションにインデックス付けされた整数のセットです。選択されたインデックスに対応する境界ボックスの座標は、GatherまたはGatherND演算を使用して取得できます。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
center_point_box::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
boxes 32ビット浮動小数点値のテンソル
scores 32ビット浮動小数点値のテンソル
max_output_boxes_per_class 64ビット符号なし整数値のテンソルまたは none 型
iou_threshold 32ビット浮動小数点値のテンソルまたはnone型
score_threshold 32ビット浮動小数点値のテンソルまたはnone型

結果

結果 説明
selected_indices 64ビット符号なし整数値のテンソル

onnx.NonZero (ONNXNonZeroOp)

ONNX NonZero演算

ゼロでない要素のインデックスを(行優先順で、つまり次元ごと)返します。NonZeroはnumpy.nonzeroと同様に動作します:https://docs.scipy.org/doc/numpy/reference/generated/numpy.nonzero.html。ただし、スカラー入力の場合、NonZeroは(1, N)ではなく(0, N)の出力形状を生成します。これはNumpyの動作とは異なります。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
X 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、bfloat16型の値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル

結果

結果 説明
Y 64ビット符号なし整数値のテンソル

onnx.NoValue (ONNXNoneOp)

値がないことを表す演算。

この演算は、値がないことを表すために使用できます。通常、オプションのパラメーターを持つ演算子の引数として使用されます。

  %cst = "onnx.NoValue"() {value} : () -> none
  %0, %1 = "onnx.Split"(%arg0, %cst) { axis=1 : si64 } : (tensor<?xf32>, none) -> (tensor<*xf32>, tensor<*xf32>)

この操作は標準の一部ではなく、onnx-mlir を支援するために追加されました。

特徴: AlwaysSpeculatableImplTrait, ConstantLike

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
value::mlir::UnitAttrunit属性

結果

結果 説明
none_val none型

onnx.Normalizer (ONNXNormalizerOp)

ONNX Normalizer演算

入力を正規化します。3つの正規化モードがあり、それぞれに対応する式は、要素ごとの挿入演算子 '/' および '^' と、テンソル全体の関数 'max' および 'sum' を使用して定義されます。

Max: Y = X / max(X)
L1: Y = X / sum(X)
L2: Y = sqrt(X^2 / sum(X^2)}
すべてのモードで、除数がゼロの場合、Y == Xです。
バッチ、つまり[N,C]テンソルの場合、正規化はC軸に沿って行われます。言い換えれば、バッチの各行は独立して正規化されます。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
norm::mlir::StringAttr文字列属性

オペランド

オペランド 説明
X 32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、または64ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル

結果

結果 説明
Y 32ビット浮動小数点値のテンソル

onnx.Not (ONNXNotOp)

ONNX Not演算

入力テンソルの否定を要素ごとに返します。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
X 1ビット符号なし整数値のテンソル

結果

結果 説明
Y 1ビット符号なし整数値のテンソル

onnx.OneHotEncoder (ONNXOneHotEncoderOp)

ONNX OneHotEncoder演算

各入力要素を、1と0の配列に置き換えます。ここで、1つだけが渡されたカテゴリのインデックスに配置されます。カテゴリの合計数によって、出力配列Yの追加次元のサイズが決まります。
たとえば、単一の値4のテンソルとカテゴリ数8を渡すと、出力は[0,0,0,0,1,0,0,0]のテンソルになります。
この演算子は、すべての入力フィーチャが同じカテゴリセットからのものであると想定しています。
入力がfloat、int32、またはdoubleのテンソルの場合、データは整数にキャストされ、cats_int64sカテゴリリストが参照に使用されます。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
cats_int64s::mlir::ArrayAttr64ビット整数配列属性
cats_strings::mlir::ArrayAttr文字列配列属性
zeros::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
X 文字列型値のテンソル、64ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

結果

結果 説明
Y 32ビット浮動小数点値のテンソル

onnx.OneHot (ONNXOneHotOp)

ONNX OneHot演算

入力に基づいてone-hotテンソルを生成します。'indices'入力テンソル内のインデックス値で表される場所には、'on_value'が設定され、他の場所には出力テンソルで'off_value'が設定されます。ここで、'on_value'と'off_value'は、必須の入力引数'values'の一部として指定されます。これは、[off_value, on_value]形式の2要素テンソルです。出力テンソルのランクは、入力テンソルのランクよりも1つ大きくなります。追加の次元は、one-hot表現用です。追加の次元は、'axis'で指定された位置に挿入されます。'axis'が指定されていない場合、追加の次元は最も内側の次元として挿入されます(つまり、axis=-1)。追加の次元のサイズは、必須のスカラー入力'depth'で指定されます。出力テンソルの型は、'values'入力の型と同じです。範囲[-depth, depth-1]外の値を持つ'indices'入力テンソル内の任意のエントリは、出力テンソル内のすべての'off_value'値を持つone-hot表現になります。

when axis = 0:
output[input[i, j, k], i, j, k] = 1 for all i, j, k and 0 otherwise.

when axis = -1:
output[i, j, k, input[i, j, k]] = 1 for all i, j, k and 0 otherwise.

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
axis::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
indices 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル
depth 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル
values 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル

結果

結果 説明
出力 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル

onnx.OptionalGetElement (ONNXOptionalGetElementOp)

ONNX OptionalGetElement演算

入力がテンソルまたはシーケンス型の場合、入力が返されます。入力がオプション型の場合、入力内の要素が出力されます。入力が空のオプション型(つまり、要素がない)の場合、エラーになり、この場合の動作は未定義です。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
入力 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、16ビット浮動小数点数値のテンソル、32ビット浮動小数点数値のテンソル、64ビット浮動小数点数値のテンソル、文字列型値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型テンソル、64ビット浮動小数点要素を持つ複素数型テンソルのいずれかのSeqTypeのOptType、または8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、16ビット浮動小数点数値のテンソル、32ビット浮動小数点数値のテンソル、64ビット浮動小数点数値のテンソル、文字列型値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型テンソル、64ビット浮動小数点要素を持つ複素数型テンソルのいずれかのOptType、または8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、16ビット浮動小数点数値のテンソル、32ビット浮動小数点数値のテンソル、64ビット浮動小数点数値のテンソル、文字列型値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型テンソル、64ビット浮動小数点要素を持つ複素数型テンソル、または8ビット符号なし整数値のテンソルのSeqType、16ビット符号なし整数値のテンソルのSeqType、32ビット符号なし整数値のテンソルのSeqType、64ビット符号なし整数値のテンソルのSeqType、8ビット符号なし整数値のテンソルのSeqType、16ビット符号なし整数値のテンソルのSeqType、32ビット符号なし整数値のテンソルのSeqType、64ビット符号なし整数値のテンソルのSeqType、16ビット浮動小数点数値のテンソルのSeqType、32ビット浮動小数点数値のテンソルのSeqType、64ビット浮動小数点数値のテンソルのSeqType、文字列型値のテンソルのSeqType、1ビット符号なし整数値のテンソルのSeqType、32ビット浮動小数点要素を持つ複素数型テンソルのSeqType、64ビット浮動小数点要素を持つ複素数型テンソルのSeqType

結果

結果 説明
出力 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、16ビット浮動小数点数値のテンソル、32ビット浮動小数点数値のテンソル、64ビット浮動小数点数値のテンソル、文字列型値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型テンソル、64ビット浮動小数点要素を持つ複素数型テンソル、または8ビット符号なし整数値のテンソルのSeqType、16ビット符号なし整数値のテンソルのSeqType、32ビット符号なし整数値のテンソルのSeqType、64ビット符号なし整数値のテンソルのSeqType、8ビット符号なし整数値のテンソルのSeqType、16ビット符号なし整数値のテンソルのSeqType、32ビット符号なし整数値のテンソルのSeqType、64ビット符号なし整数値のテンソルのSeqType、16ビット浮動小数点数値のテンソルのSeqType、32ビット浮動小数点数値のテンソルのSeqType、64ビット浮動小数点数値のテンソルのSeqType、文字列型値のテンソルのSeqType、1ビット符号なし整数値のテンソルのSeqType、32ビット浮動小数点要素を持つ複素数型テンソルのSeqType、64ビット浮動小数点要素を持つ複素数型テンソルのSeqType

onnx.OptionalHasElement (ONNXOptionalHasElementOp)

ONNX OptionalHasElement 操作

(1) 入力がオプション型であり、要素が含まれている場合、または (2) 入力がテンソル型またはシーケンス型である場合に true を返します。入力が提供されない場合、または空のオプション型である場合、この op は false を返します。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
入力 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、16ビット浮動小数点数値のテンソル、32ビット浮動小数点数値のテンソル、64ビット浮動小数点数値のテンソル、文字列型値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型テンソル、64ビット浮動小数点要素を持つ複素数型テンソルのいずれかのSeqTypeのOptType、または8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、16ビット浮動小数点数値のテンソル、32ビット浮動小数点数値のテンソル、64ビット浮動小数点数値のテンソル、文字列型値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型テンソル、64ビット浮動小数点要素を持つ複素数型テンソルのいずれかのOptType、または8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、16ビット浮動小数点数値のテンソル、32ビット浮動小数点数値のテンソル、64ビット浮動小数点数値のテンソル、文字列型値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型テンソル、64ビット浮動小数点要素を持つ複素数型テンソル、または8ビット符号なし整数値のテンソルのSeqType、16ビット符号なし整数値のテンソルのSeqType、32ビット符号なし整数値のテンソルのSeqType、64ビット符号なし整数値のテンソルのSeqType、8ビット符号なし整数値のテンソルのSeqType、16ビット符号なし整数値のテンソルのSeqType、32ビット符号なし整数値のテンソルのSeqType、64ビット符号なし整数値のテンソルのSeqType、16ビット浮動小数点数値のテンソルのSeqType、32ビット浮動小数点数値のテンソルのSeqType、64ビット浮動小数点数値のテンソルのSeqType、文字列型値のテンソルのSeqType、1ビット符号なし整数値のテンソルのSeqType、32ビット浮動小数点要素を持つ複素数型テンソルのSeqType、64ビット浮動小数点要素を持つ複素数型テンソルのSeqType、またはnone型

結果

結果 説明
出力 1ビット符号なし整数値のテンソル

onnx.Optional (ONNXOptionalOp)

ONNX Optional 操作

属性で指定された特定の型の空のオプション、または入力要素を含む空でない値のいずれかを含むオプション型の値を構築します。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
type::mlir::TypeAttr任意の型属性

オペランド

オペランド 説明
入力 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、16ビット浮動小数点数値のテンソル、32ビット浮動小数点数値のテンソル、64ビット浮動小数点数値のテンソル、文字列型値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型テンソル、64ビット浮動小数点要素を持つ複素数型テンソル、または8ビット符号なし整数値のテンソルのSeqType、16ビット符号なし整数値のテンソルのSeqType、32ビット符号なし整数値のテンソルのSeqType、64ビット符号なし整数値のテンソルのSeqType、8ビット符号なし整数値のテンソルのSeqType、16ビット符号なし整数値のテンソルのSeqType、32ビット符号なし整数値のテンソルのSeqType、64ビット符号なし整数値のテンソルのSeqType、16ビット浮動小数点数値のテンソルのSeqType、32ビット浮動小数点数値のテンソルのSeqType、64ビット浮動小数点数値のテンソルのSeqType、文字列型値のテンソルのSeqType、1ビット符号なし整数値のテンソルのSeqType、32ビット浮動小数点要素を持つ複素数型テンソルのSeqType、64ビット浮動小数点要素を持つ複素数型テンソルのSeqType、またはnone型

結果

結果 説明
出力 8ビット符号なし整数値のテンソルのSeqTypeのOptType、または16ビット符号なし整数値のテンソルのSeqTypeのOptType、または32ビット符号なし整数値のテンソルのSeqTypeのOptType、または64ビット符号なし整数値のテンソルのSeqTypeのOptType、または8ビット符号なし整数値のテンソルのSeqTypeのOptType、または16ビット符号なし整数値のテンソルのSeqTypeのOptType、または32ビット符号なし整数値のテンソルのSeqTypeのOptType、または64ビット符号なし整数値のテンソルのSeqTypeのOptType、または16ビット浮動小数点値のテンソルのSeqTypeのOptType、または32ビット浮動小数点値のテンソルのSeqTypeのOptType、または64ビット浮動小数点値のテンソルのSeqTypeのOptType、または文字列型の値のテンソルのSeqTypeのOptType、または1ビット符号なし整数値のテンソルのSeqTypeのOptType、または32ビット浮動小数点要素を持つ複素数型のテンソルのSeqTypeのOptType、または64ビット浮動小数点要素を持つ複素数型のテンソルのSeqTypeのOptType、または8ビット符号なし整数値のテンソルのOptType、または16ビット符号なし整数値のテンソルのOptType、または32ビット符号なし整数値のテンソルのOptType、または64ビット符号なし整数値のテンソルのOptType、または8ビット符号なし整数値のテンソルのOptType、または16ビット符号なし整数値のテンソルのOptType、または32ビット符号なし整数値のテンソルのOptType、または64ビット符号なし整数値のテンソルのOptType、または16ビット浮動小数点値のテンソルのOptType、または32ビット浮動小数点値のテンソルのOptType、または64ビット浮動小数点値のテンソルのOptType、または文字列型の値のテンソルのOptType、または1ビット符号なし整数値のテンソルのOptType、または32ビット浮動小数点要素を持つ複素数型のテンソルのOptType、または64ビット浮動小数点要素を持つ複素数型のテンソルのOptType

onnx.Or (ONNXOrOp)

ONNX Or 演算

入力テンソル AB に対して、要素ごとに論理演算 or を実行した結果のテンソルを返します(NumPy スタイルのブロードキャストをサポートします)。

この演算子は、多方向(つまり、NumPyスタイル)のブロードキャストをサポートしています。詳細については、ドキュメントを参照してください。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
A 1ビット符号なし整数値のテンソル
B 1ビット符号なし整数値のテンソル

結果

結果 説明
C 1ビット符号なし整数値のテンソル

onnx.PRelu (ONNXPReluOp)

ONNX PRelu 演算

PRelu は入力データ (Tensor) とスロープテンソルを入力として受け取り、関数 `f(x) = slope * x for x < 0`, `f(x) = x for x >= 0` をデータテンソルに要素ごとに適用した1つの出力データ (Tensor) を生成します。この演算子は、**単方向ブロードキャスト**をサポートします(テンソル slope は入力テンソル X に対して単方向ブロードキャスト可能である必要があります)。詳細については、[ドキュメント](Broadcasting.md)を確認してください。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
X bfloat16 型の値のテンソル、または 16 ビット浮動小数点値のテンソル、または 32 ビット浮動小数点値のテンソル、または 64 ビット浮動小数点値のテンソル、または 32 ビット符号なし整数値のテンソル、または 64 ビット符号なし整数値のテンソル、または 32 ビット符号なし整数値のテンソル、または 64 ビット符号なし整数値のテンソル
スロープ bfloat16 型の値のテンソル、または 16 ビット浮動小数点値のテンソル、または 32 ビット浮動小数点値のテンソル、または 64 ビット浮動小数点値のテンソル、または 32 ビット符号なし整数値のテンソル、または 64 ビット符号なし整数値のテンソル、または 32 ビット符号なし整数値のテンソル、または 64 ビット符号なし整数値のテンソル

結果

結果 説明
Y bfloat16 型の値のテンソル、または 16 ビット浮動小数点値のテンソル、または 32 ビット浮動小数点値のテンソル、または 64 ビット浮動小数点値のテンソル、または 32 ビット符号なし整数値のテンソル、または 64 ビット符号なし整数値のテンソル、または 32 ビット符号なし整数値のテンソル、または 64 ビット符号なし整数値のテンソル

onnx.Pad (ONNXPadOp)

ONNX Pad 演算

パディングされるデータを含むテンソル(data)、軸ごとの開始および終了パディング値の数を含むテンソル(pads)、(オプションで)mode、および(オプションで)constant_value が与えられると、パディングされたテンソル(output)が生成されます。

サポートされている 3 つの mode は、(numpy.pad でサポートされている対応するモードと同様に)

1) constant(デフォルト)- constant_value で指定された定数値でパディングします(デフォルトは 0、空文字列、または False)。

2) reflect - 各軸に沿ってベクトルの最初と最後の値でミラーリングされたベクトルの反射でパディングします

3) edge - 配列のエッジ値でパディングします

4) wrap - データテンソルがトーラスを形成しているかのようにラップアラウンドパディングします

例 1(constant モード)

2 番目の次元の先頭に 0 パディングを挿入します。

data = [
    [1.0, 1.2],
    [2.3, 3.4],
    [4.5, 5.7],
]

pads = [0, 2, 0, 0]

mode = 'constant'

constant_value = 0.0

output = [
    [0.0, 0.0, 1.0, 1.2],
    [0.0, 0.0, 2.3, 3.4],
    [0.0, 0.0, 4.5, 5.7],
]

例 2(reflect モード)

data = [
    [1.0, 1.2],
    [2.3, 3.4],
    [4.5, 5.7],
]

pads = [0, 2, 0, 0]

mode = 'reflect'

output = [
    [1.0, 1.2, 1.0, 1.2],
    [2.3, 3.4, 2.3, 3.4],
    [4.5, 5.7, 4.5, 5.7],
]

例 3(edge モード)

data = [
    [1.0, 1.2],
    [2.3, 3.4],
    [4.5, 5.7],
]

pads = [0, 2, 0, 0]

mode = 'edge'

output = [
    [1.0, 1.0, 1.0, 1.2],
    [2.3, 2.3, 2.3, 3.4],
    [4.5, 4.5, 4.5, 5.7],
]

例 4(wrap モード)

data = [
    [1.0, 1.2],
    [2.3, 3.4],
    [4.5, 5.7],
]

pads = [2, 1, 1, 1]

mode = 'wrap'

output = [
    [3.4, 2.3, 3.4, 2.3],
    [5.7, 4.5, 5.7, 4.5],
    [1.2, 1.0, 1.2, 1.0],
    [3.4, 2.3, 3.4, 2.3],
    [5.7, 4.5, 5.7, 4.5],
    [1.2, 1.0, 1.2, 1.0],
]

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
mode::mlir::StringAttr文字列属性

オペランド

オペランド 説明
data 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、bfloat16型の値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル
pads 64ビット符号なし整数値のテンソル
constant_value 8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、またはbfloat16型の値のテンソル、または16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、または文字列型の値のテンソル、または1ビット符号なし整数値のテンソル、または32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル、またはnone型
axes 32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、または none 型

結果

結果 説明
出力 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、bfloat16型の値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル

onnx.PadV11 (ONNXPadV11Op)

ONNX Pad 演算

パディングされるデータを含むテンソル(data)、軸ごとの開始および終了パディング値の数を含むテンソル(pads)、(オプションで)mode、および(オプションで)constant_value が与えられると、パディングされたテンソル(output)が生成されます。

サポートされている 3 つの mode は、(numpy.pad でサポートされている対応するモードと同様に)

1) constant(デフォルト)- constant_value で指定された定数値でパディングします(デフォルトは 0)。

2) reflect - 各軸に沿ってベクトルの最初と最後の値でミラーリングされたベクトルの反射でパディングします

3) edge - 配列のエッジ値でパディングします

例 1(constant モード):2 番目の次元の先頭に 0 パディングを挿入します。

data = [ [1.0, 1.2], [2.3, 3.4], [4.5, 5.7], ]

pads = [0, 2, 0, 0]

mode = 'constant'

constant_value = 0.0

output = [ [0.0, 0.0, 1.0, 1.2], [0.0, 0.0, 2.3, 3.4], [0.0, 0.0, 4.5, 5.7], ]

例 2(reflect モード):data = [ [1.0, 1.2], [2.3, 3.4], [4.5, 5.7], ]

pads = [0, 2, 0, 0]

mode = 'reflect'

output = [ [1.0, 1.2, 1.0, 1.2], [2.3, 3.4, 2.3, 3.4], [4.5, 5.7, 4.5, 5.7], ]

例 3(edge モード):data = [ [1.0, 1.2], [2.3, 3.4], [4.5, 5.7], ]

pads = [0, 2, 0, 0]

mode = 'edge'

output = [ [1.0, 1.0, 1.0, 1.2], [2.3, 2.3, 2.3, 3.4], [4.5, 4.5, 4.5, 5.7], ]

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
mode::mlir::StringAttr文字列属性

オペランド

オペランド 説明
data 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル
pads 64ビット符号なし整数値のテンソル
constant_value 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、または none 型

結果

結果 説明
出力 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

onnx.PadV13 (ONNXPadV13Op)

ONNX Pad 演算

パディングされるデータを含むテンソル(data)、軸ごとの開始および終了パディング値の数を含むテンソル(pads)、(オプションで)mode、および(オプションで)constant_value が与えられると、パディングされたテンソル(output)が生成されます。

サポートされている 3 つの mode は、(numpy.pad でサポートされている対応するモードと同様に)

1) constant(デフォルト)- constant_value で指定された定数値でパディングします(デフォルトは 0、空文字列、または False)。

2) reflect - 各軸に沿ってベクトルの最初と最後の値でミラーリングされたベクトルの反射でパディングします

3) edge - 配列のエッジ値でパディングします

例 1(constant モード):2 番目の次元の先頭に 0 パディングを挿入します。

data = [ [1.0, 1.2], [2.3, 3.4], [4.5, 5.7], ]

pads = [0, 2, 0, 0]

mode = 'constant'

constant_value = 0.0

output = [ [0.0, 0.0, 1.0, 1.2], [0.0, 0.0, 2.3, 3.4], [0.0, 0.0, 4.5, 5.7], ]

例 2(reflect モード):data = [ [1.0, 1.2], [2.3, 3.4], [4.5, 5.7], ]

pads = [0, 2, 0, 0]

mode = 'reflect'

output = [ [1.0, 1.2, 1.0, 1.2], [2.3, 3.4, 2.3, 3.4], [4.5, 5.7, 4.5, 5.7], ]

例 3(edge モード):data = [ [1.0, 1.2], [2.3, 3.4], [4.5, 5.7], ]

pads = [0, 2, 0, 0]

mode = 'edge'

output = [ [1.0, 1.0, 1.0, 1.2], [2.3, 2.3, 2.3, 3.4], [4.5, 4.5, 4.5, 5.7], ]

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
mode::mlir::StringAttr文字列属性

オペランド

オペランド 説明
data 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、bfloat16型の値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル
pads 64ビット符号なし整数値のテンソル
constant_value 8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、またはbfloat16型の値のテンソル、または16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、または文字列型の値のテンソル、または1ビット符号なし整数値のテンソル、または32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル、またはnone型

結果

結果 説明
出力 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、bfloat16型の値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル

onnx.PadV18 (ONNXPadV18Op)

ONNX Pad 演算

パディングされるデータを含むテンソル(data)、軸ごとの開始および終了パディング値の数を含むテンソル(pads)、(オプションで)mode、および(オプションで)constant_value が与えられると、パディングされたテンソル(output)が生成されます。

サポートされている 3 つの mode は、(numpy.pad でサポートされている対応するモードと同様に)

1) constant(デフォルト)- constant_value で指定された定数値でパディングします(デフォルトは 0、空文字列、または False)。

2) reflect - 各軸に沿ってベクトルの最初と最後の値でミラーリングされたベクトルの反射でパディングします

3) edge - 配列のエッジ値でパディングします

例 1(constant モード)

2 番目の次元の先頭に 0 パディングを挿入します。

data = [
    [1.0, 1.2],
    [2.3, 3.4],
    [4.5, 5.7],
]

pads = [0, 2, 0, 0]

mode = 'constant'

constant_value = 0.0

output = [
    [0.0, 0.0, 1.0, 1.2],
    [0.0, 0.0, 2.3, 3.4],
    [0.0, 0.0, 4.5, 5.7],
]

例 2(reflect モード)

data = [
    [1.0, 1.2],
    [2.3, 3.4],
    [4.5, 5.7],
]

pads = [0, 2, 0, 0]

mode = 'reflect'

output = [
    [1.0, 1.2, 1.0, 1.2],
    [2.3, 3.4, 2.3, 3.4],
    [4.5, 5.7, 4.5, 5.7],
]

例 3(edge モード)

data = [
    [1.0, 1.2],
    [2.3, 3.4],
    [4.5, 5.7],
]

pads = [0, 2, 0, 0]

mode = 'edge'

output = [
    [1.0, 1.0, 1.0, 1.2],
    [2.3, 2.3, 2.3, 3.4],
    [4.5, 4.5, 4.5, 5.7],
]

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
mode::mlir::StringAttr文字列属性

オペランド

オペランド 説明
data 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、bfloat16型の値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル
pads 64ビット符号なし整数値のテンソル
constant_value 8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、またはbfloat16型の値のテンソル、または16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、または文字列型の値のテンソル、または1ビット符号なし整数値のテンソル、または32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル、またはnone型
axes 32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、または none 型

結果

結果 説明
出力 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、bfloat16型の値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル

onnx.PadV2 (ONNXPadV2Op)

ONNX Pad 演算

data テンソル、pads、mode、および value が与えられます。例:2 番目の次元の先頭に 0 パディングを挿入します。data = [ [1.0, 1.2], [2.3, 3.4], [4.5, 5.7], ] pads = [0, 2, 0, 0] output = [ [ [0.0, 0.0, 1.0, 1.2], [0.0, 0.0, 2.3, 3.4], [0.0, 0.0, 4.5, 5.7], ], ]

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
mode::mlir::StringAttr文字列属性
pads::mlir::ArrayAttr64ビット整数配列属性
value::mlir::FloatAttr32ビット浮動小数点属性

オペランド

オペランド 説明
data 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

結果

結果 説明
出力 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

onnx.Pow (ONNXPowOp)

ONNX Pow 演算

Pow は、入力データ(Tensor)と指数テンソルを入力として受け取り、関数 `f(x) = x^exponent` がデータテンソルに要素ごとに適用された1つの出力データ(Tensor)を生成します。この演算子は、**多方向(すなわち、NumPyスタイルの)ブロードキャスト**をサポートします。詳細については、[ドキュメント](Broadcasting.md)を確認してください。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
X 32 ビット符号なし整数値のテンソル、または 64 ビット符号なし整数値のテンソル、または 16 ビット浮動小数点値のテンソル、または 32 ビット浮動小数点値のテンソル、または 64 ビット浮動小数点値のテンソル、または bfloat16 型の値のテンソル
Y 8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型値のテンソル

結果

結果 説明
Z 32 ビット符号なし整数値のテンソル、または 64 ビット符号なし整数値のテンソル、または 16 ビット浮動小数点値のテンソル、または 32 ビット浮動小数点値のテンソル、または 64 ビット浮動小数点値のテンソル、または bfloat16 型の値のテンソル

onnx.PrintSignature (ONNXPrintSignatureOp)

入力オペランドの型シグネチャを出力する ONNX Op

演算の入力オペランドの型シグネチャを出力します。この演算は、元の ONNX 演算の名前を保持するために早期に導入されています。

この操作は標準の一部ではなく、onnx-mlir を支援するために追加されました。

属性

属性MLIR 型説明
op_name::mlir::StringAttr文字列属性

オペランド

オペランド 説明
入力 任意の型の値のテンソルの可変長引数、またはnone型

onnx.QLinearConv (ONNXQLinearConvOp)

ONNX QLinearConv 演算

畳み込み演算子は、量子化された入力テンソル、そのスケールとゼロ点、量子化されたフィルター、そのスケールとゼロ点、および出力のスケールとゼロ点を消費し、量子化された出力を計算します。各スケールとゼロ点のペアは、同じ形状でなければなりません。つまり、それらはスカラー(テンソルごと)または1次元テンソル(出力チャネルごと)のいずれかでなければなりません。各入力または出力とその関連するゼロ点は、同じ型でなければなりません。バイアスが存在する場合、スケール=入力スケール*重みスケール、ゼロ点=0を使用して量子化する必要があります。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
auto_pad::mlir::StringAttr文字列属性
dilations::mlir::ArrayAttr64ビット整数配列属性
グループ::mlir::IntegerAttr64ビット符号付き整数属性
kernel_shape::mlir::ArrayAttr64ビット整数配列属性
pads::mlir::ArrayAttr64ビット整数配列属性
strides::mlir::ArrayAttr64ビット整数配列属性

オペランド

オペランド 説明
x 8ビット符号なし整数値のテンソルまたは8ビット符号なし整数値のテンソル
x_scale 32ビット浮動小数点値のテンソル
x_zero_point 8ビット符号なし整数値のテンソルまたは8ビット符号なし整数値のテンソル
w 8ビット符号なし整数値のテンソルまたは8ビット符号なし整数値のテンソル
w_scale 32ビット浮動小数点値のテンソル
w_zero_point 8ビット符号なし整数値のテンソルまたは8ビット符号なし整数値のテンソル
y_scale 32ビット浮動小数点値のテンソル
y_zero_point 8ビット符号なし整数値のテンソルまたは8ビット符号なし整数値のテンソル
B 32ビット符号なし整数値のテンソル、または None 型

結果

結果 説明
y 8ビット符号なし整数値のテンソルまたは8ビット符号なし整数値のテンソル

onnx.QLinearMatMul (ONNXQLinearMatMulOp)

ONNX QLinearMatMul 演算

numpy.matmul のように動作する行列積です。2つの量子化された入力テンソル、それらのスケールとゼロ点、出力のスケールとゼロ点を消費し、量子化された出力を計算します。量子化式は y = saturate((x / y_scale) + y_zero_point) です。(x / y_scale)については、最近傍偶数への丸めです。詳細については、https://en.wikipedia.org/wiki/Rounding を参照してください。スケールとゼロ点は同じ形状でなければなりません。それらは、スカラー(テンソルごと)または N 次元テンソル(「a」の場合は行ごと、「b」の場合は列ごと)のいずれかである必要があります。スカラーはテンソルごとの量子化を指し、N 次元は行ごとまたは列ごとの量子化を指します。入力が[M, K]の形状の2Dの場合、ゼロ点とスケールテンソルは、行ごとの量子化の場合にはM要素のベクトル[v_1, v_2, …, v_M]、列ごとの量子化の場合にはK要素のベクトル[v_1, v_2, …, v_K]である可能性があります。入力が[D1, D2, M, K]の形状のN次元テンソルである場合、ゼロ点とスケールテンソルは、行ごとの量子化の場合には[D1, D2, M, 1]の形状、列ごとの量子化の場合には[D1, D2, 1, K]の形状である可能性があります。積は決してオーバーフローしてはならず、累積は 32 ビットの場合にのみオーバーフローする可能性があります。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
a 8ビット符号なし整数値のテンソルまたは8ビット符号なし整数値のテンソル
a_scale 32ビット浮動小数点値のテンソル
a_zero_point 8ビット符号なし整数値のテンソルまたは8ビット符号なし整数値のテンソル
b 8ビット符号なし整数値のテンソルまたは8ビット符号なし整数値のテンソル
b_scale 32ビット浮動小数点値のテンソル
b_zero_point 8ビット符号なし整数値のテンソルまたは8ビット符号なし整数値のテンソル
y_scale 32ビット浮動小数点値のテンソル
y_zero_point 8ビット符号なし整数値のテンソルまたは8ビット符号なし整数値のテンソル

結果

結果 説明
y 8ビット符号なし整数値のテンソルまたは8ビット符号なし整数値のテンソル

onnx.QuantizeLinear (ONNXQuantizeLinearOp)

ONNX QuantizeLinear 演算

線形量子化演算子。高精度テンソル、スケール、およびゼロ点を入力として受け取り、低精度/量子化されたテンソルを計算します。スケールファクターとゼロ点は同じ形状である必要があり、テンソルごとの量子化またはレイヤーごとの量子化の場合はスカラー、軸ごとの量子化の場合は1次元テンソルを使用できます。量子化の公式はy = saturate ((x / y_scale) + y_zero_point)です。飽和処理では、uint8の場合は[0, 255]、int8の場合は[-128, 127]に飽和します。(x / y_scale)については、最も近い偶数に丸められます。詳細については、https://en.wikipedia.org/wiki/Rounding を参照してください。'y_zero_point' と 'y' は同じ型である必要があります。通常、'y_zero_point' は float8e4m3fn、float8e4m3fnuz、float8e5m2、float8e5m2fnuz への量子化には使用されませんが、一貫性を保つために量子化の公式は同じままです。また、属性 'y_zero_point' の型が量子化の型を決定します。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
axis::mlir::IntegerAttr64ビット符号付き整数属性
saturate::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
x 32ビット浮動小数点値のテンソル、16ビット浮動小数点値のテンソル、bfloat16型値のテンソル、または32ビット符号なし整数値のテンソル
y_scale 32ビット浮動小数点値のテンソル、16ビット浮動小数点値のテンソル、bfloat16型値のテンソル、または32ビット符号なし整数値のテンソル
y_zero_point 8ビット符号付き整数値のテンソル、8ビット符号なし整数値のテンソル、f8E4M3FN型値のテンソル、f8E4M3FNUZ型値のテンソル、f8E5M2型値のテンソル、f8E5M2FNUZ型値のテンソル、またはnone型

結果

結果 説明
y 8ビット符号付き整数値のテンソル、8ビット符号なし整数値のテンソル、f8E4M3FN型値のテンソル、f8E4M3FNUZ型値のテンソル、f8E5M2型値のテンソル、またはf8E5M2FNUZ型値のテンソル

onnx.RMSLayerNormalization (ONNXRMSLayerNormalizationOp)

ONNX RMSLayerNormalization演算

これは、ONNXで関数として定義されたRMSレイヤー正規化です。全体の計算は2つの段階に分割できます。最初の段階は、正規化された要素がゼロ平均と単位分散を持つようにする、近似的な標準化です。この論文の式(4)を参照してください。この論文。標準化に必要な計算は、次の式で記述できます。 DD = Mul(X, X) Var = ReduceMean<axes=normalized_axes>(DD) VarEps = Add(Var, epsilon) StdDev = Sqrt(VarEps) InvStdDev = Reciprocal(StdDev) Normalized = Mul(X, InvStdDev) ここで、normalized_axes[axis, ..., X のランク - 1] です。変数 VarStdDev は、それぞれ近似分散と標準偏差を表します。stash_type 属性に応じて、実際の計算は異なる浮動小数点精度で行う必要があります。たとえば、stash_type が 1 の場合、この演算子はすべての入力変数を 32 ビット浮動小数点にキャストし、計算を実行し、最後に NormalizedX の元の型に戻します。第2段階では、 NormalizedScaled = Mul(Normalized, Scale) Y = Add(NormalizedScaled, B) を使用して、第1段階の結果をスケールおよびシフトします。第2段階は、stash_type に依存しません。すべての式はこの構文にあります。上記の式とこの演算子の定義では、同じ変数(入力、出力、および属性)に同じ名前を使用しています。d[i]X の i 番目の次元とします。X の形状が [d[0], ..., d[axis-1], d[axis], ..., d[rank-1]] の場合、MeanInvStdDev の形状は [d[0], ..., d[axis-1], 1, ..., 1] です。YX は同じ形状です。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
axis::mlir::IntegerAttr64ビット符号付き整数属性
epsilon::mlir::FloatAttr32ビット浮動小数点属性
stash_type::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
X 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型の値のテンソル
Scale 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型の値のテンソル
B 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型の値のテンソル、またはNone型

結果

結果 説明
Y 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型の値のテンソル
InvStdDev 32ビット浮動小数点値のテンソル、bfloat16型の値のテンソル、またはnone型

onnx.RNN (ONNXRNNOp)

ONNX RNN演算

単一層の単純なRNNを計算します。この演算子は通常、CuDNNなどのカスタム実装を介してサポートされます。

記法

活性化関数

注:以下はオプションです。

式(デフォルト:f = Tanh)

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
activation_alpha::mlir::ArrayAttr32ビット浮動小数点配列属性
activation_beta::mlir::ArrayAttr32ビット浮動小数点配列属性
activations::mlir::ArrayAttr文字列配列属性
clip::mlir::FloatAttr32ビット浮動小数点属性
direction::mlir::StringAttr文字列属性
hidden_size::mlir::IntegerAttr64ビット符号付き整数属性
layout::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
X 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル
W 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル
R 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル
B 16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、または none 型
sequence_lens 32ビット符号なし整数値のテンソル、または None 型
initial_h 16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、または none 型

結果

結果 説明
Y 16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、または none 型
Y_h 16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、または none 型

onnx.RandomNormalLike (ONNXRandomNormalLikeOp)

ONNX RandomNormalLike演算

正規分布から抽出されたランダムな値を持つテンソルを生成します。出力テンソルの形状は入力テンソルの形状からコピーされ、正規分布のパラメータはmeanscaleで指定されます。

データ型は、'dtype' 引数で指定するか、提供されていない場合は入力テンソルからコピーされます。'dtype' 引数は、TensorProtoメッセージの'DataType'列挙フィールドで指定されたデータ型のいずれかであり、出力型として有効である必要があります。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
dtype::mlir::IntegerAttr64ビット符号付き整数属性
mean::mlir::FloatAttr32ビット浮動小数点属性
scale::mlir::FloatAttr32ビット浮動小数点属性
seed::mlir::FloatAttr32ビット浮動小数点属性

オペランド

オペランド 説明
入力 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル

結果

結果 説明
出力 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

onnx.RandomNormal (ONNXRandomNormalOp)

ONNX RandomNormal演算

正規分布から抽出されたランダムな値を持つテンソルを生成します。テンソルの形状はshape引数で指定され、正規分布のパラメータはmeanscaleで指定されます。

データ型は、'dtype'引数で指定されます。'dtype'引数は、TensorProtoメッセージの'DataType'列挙フィールドで指定されたデータ型のいずれかである必要があります。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ResultTypeInferenceOpInterface, ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
dtype::mlir::IntegerAttr64ビット符号付き整数属性
mean::mlir::FloatAttr32ビット浮動小数点属性
scale::mlir::FloatAttr32ビット浮動小数点属性
seed::mlir::FloatAttr32ビット浮動小数点属性
shape::mlir::ArrayAttr64ビット整数配列属性

結果

結果 説明
出力 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

onnx.RandomUniformLike (ONNXRandomUniformLikeOp)

ONNX RandomUniformLike演算

一様分布から抽出されたランダムな値を持つテンソルを生成します。出力テンソルの形状は入力テンソルの形状からコピーされ、一様分布のパラメータはlowhighで指定されます。

データ型は、'dtype'引数で指定するか、提供されていない場合は入力テンソルからコピーされます。'dtype'引数は、TensorProtoメッセージの'DataType'列挙フィールドで指定されたデータ型のいずれかであり、出力型として有効である必要があります。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
dtype::mlir::IntegerAttr64ビット符号付き整数属性
high::mlir::FloatAttr32ビット浮動小数点属性
low::mlir::FloatAttr32ビット浮動小数点属性
seed::mlir::FloatAttr32ビット浮動小数点属性

オペランド

オペランド 説明
入力 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル

結果

結果 説明
出力 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

onnx.RandomUniform (ONNXRandomUniformOp)

ONNX RandomUniform演算

一様分布から抽出されたランダムな値を持つテンソルを生成します。テンソルの形状はshape引数で指定され、範囲はlowhighで指定されます。

データ型は、'dtype'引数で指定されます。'dtype'引数は、TensorProtoメッセージの'DataType'列挙フィールドで指定されたデータ型のいずれかである必要があります。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
dtype::mlir::IntegerAttr64ビット符号付き整数属性
high::mlir::FloatAttr32ビット浮動小数点属性
low::mlir::FloatAttr32ビット浮動小数点属性
seed::mlir::FloatAttr32ビット浮動小数点属性
shape::mlir::ArrayAttr64ビット整数配列属性

結果

結果 説明
出力 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

onnx.Range (ONNXRangeOp)

ONNX Range演算

startで始まり、deltaの増分でlimit(排他的)まで拡張する数値のシーケンスを含むテンソルを生成します。

範囲の出力の要素数は、以下のように計算されます

number_of_elements = max( ceil( (limit - start) / delta ) , 0 )

出力の内容を決定する擬似コードを以下に示します

for(int i=0; i<number_of_elements; ++i) {
  output[i] =  start + (i * delta);
}

例 1

Inputs: start = 3, limit = 9, delta = 3
Output: [3, 6]

例 2

Inputs: start = 10, limit = 4, delta = -2
Output: [10, 8, 6]

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
start 32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル
limit 32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル
delta 32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル

結果

結果 説明
出力 32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル

onnx.Reciprocal (ONNXReciprocalOp)

ONNX Reciprocal演算

Reciprocalは、1つの入力データ(テンソル)を受け取り、1つの出力データ(Tensor)を受け取り、ここで、逆数y = 1/xがテンソル要素ごとに適用されます。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
X 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型の値のテンソル

結果

結果 説明
Y 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型の値のテンソル

onnx.ReduceL1 (ONNXReduceL1Op)

ONNX ReduceL1演算

指定された軸に沿って、入力テンソルの要素のL1ノルムを計算します。keepdimsが1の場合、結果のテンソルは入力と同じランクを持ちます。keepdimsが0の場合、結果のテンソルは削減された次元が削除されます。ランクゼロの入力テンソルは有効です。値の空集合に対する削減は0になります。

上記の動作はnumpyに似ていますが、numpyのデフォルトではkeepdimsTrueではなくFalseである点が異なります。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
keepdims::mlir::IntegerAttr64ビット符号付き整数属性
noop_with_empty_axes::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
data 32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、または bfloat16 型値のテンソル
axes 64ビット符号なし整数値のテンソルまたは none 型

結果

結果 説明
reduced 32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、または bfloat16 型値のテンソル

onnx.ReduceL1V13 (ONNXReduceL1V13Op)

ONNX ReduceL1演算

指定された軸に沿って、入力テンソルの要素のL1ノルムを計算します。keepdimsが1の場合、結果のテンソルは入力と同じランクを持ちます。keepdimsが0の場合、結果のテンソルは削減された次元が削除されます。ランクゼロの入力テンソルは有効です。値の空集合に対する削減は0になります。

上記の動作はnumpyに似ていますが、numpyのデフォルトではkeepdimsTrueではなくFalseである点が異なります。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
axes::mlir::ArrayAttr64ビット整数配列属性
keepdims::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
data 32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、または bfloat16 型値のテンソル

結果

結果 説明
reduced 32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、または bfloat16 型値のテンソル

onnx.ReduceL2 (ONNXReduceL2Op)

ONNX ReduceL2演算

指定された軸に沿って、入力テンソルの要素のL2ノルムを計算します。keepdimsが1の場合、結果のテンソルは入力と同じランクを持ちます。keepdimsが0の場合、結果のテンソルは削減された次元が削除されます。ランクゼロの入力テンソルは有効です。値の空集合に対する削減は0になります。

上記の動作はnumpyに似ていますが、numpyのデフォルトではkeepdimsTrueではなくFalseである点が異なります。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
keepdims::mlir::IntegerAttr64ビット符号付き整数属性
noop_with_empty_axes::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
data 32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、または bfloat16 型値のテンソル
axes 64ビット符号なし整数値のテンソルまたは none 型

結果

結果 説明
reduced 32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、または bfloat16 型値のテンソル

onnx.ReduceL2V13 (ONNXReduceL2V13Op)

ONNX ReduceL2演算

指定された軸に沿って、入力テンソルの要素のL2ノルムを計算します。keepdimsが1の場合、結果のテンソルは入力と同じランクを持ちます。keepdimsが0の場合、結果のテンソルは削減された次元が削除されます。ランクゼロの入力テンソルは有効です。値の空集合に対する削減は0になります。

上記の動作はnumpyに似ていますが、numpyのデフォルトではkeepdimsTrueではなくFalseである点が異なります。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
axes::mlir::ArrayAttr64ビット整数配列属性
keepdims::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
data 32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、または bfloat16 型値のテンソル

結果

結果 説明
reduced 32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、または bfloat16 型値のテンソル

onnx.ReduceLogSumExp (ONNXReduceLogSumExpOp)

ONNX ReduceLogSumExp演算

指定された軸に沿って、入力テンソルの要素のログ合計指数を計算します。keepdimsが1の場合、結果のテンソルは入力と同じランクを持ちます。keepdimsが0の場合、結果のテンソルは削減された次元が削除されます。ランクゼロの入力テンソルは有効です。値の空集合に対する削減は、(データ型でサポートされている場合は)マイナス無限大を生成し、それ以外の場合は未定義になります。

上記の動作はnumpyに似ていますが、numpyのデフォルトではkeepdimsTrueではなくFalseである点が異なります。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
keepdims::mlir::IntegerAttr64ビット符号付き整数属性
noop_with_empty_axes::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
data 32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、または bfloat16 型値のテンソル
axes 64ビット符号なし整数値のテンソルまたは none 型

結果

結果 説明
reduced 32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、または bfloat16 型値のテンソル

onnx.ReduceLogSumExpV13 (ONNXReduceLogSumExpV13Op)

ONNX ReduceLogSumExp演算

指定された軸に沿って、入力テンソルの要素のログ合計指数を計算します。keepdimsが1の場合、結果のテンソルは入力と同じランクを持ちます。keepdimsが0の場合、結果のテンソルは削減された次元が削除されます。ランクゼロの入力テンソルは有効です。値の空集合に対する削減は、(データ型でサポートされている場合は)マイナス無限大を生成し、それ以外の場合は未定義になります。

上記の動作はnumpyに似ていますが、numpyのデフォルトではkeepdimsTrueではなくFalseである点が異なります。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
axes::mlir::ArrayAttr64ビット整数配列属性
keepdims::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
data 32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、または bfloat16 型値のテンソル

結果

結果 説明
reduced 32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、または bfloat16 型値のテンソル

onnx.ReduceLogSum (ONNXReduceLogSumOp)

ONNX ReduceLogSum演算

指定された軸に沿って、入力テンソルの要素のログ和を計算します。 keepdims が 1 の場合、結果のテンソルは入力と同じランクを持ちます。keepdims が 0 の場合、結果のテンソルは縮小された次元が削除されます。ランク 0 の入力テンソルは有効です。値の空のセットに対する縮小は、(データ型でサポートされている場合は) マイナス無限大を生成し、それ以外の場合は未定義を生成します。

上記の動作はnumpyに似ていますが、numpyのデフォルトではkeepdimsTrueではなくFalseである点が異なります。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
keepdims::mlir::IntegerAttr64ビット符号付き整数属性
noop_with_empty_axes::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
data 32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、または bfloat16 型値のテンソル
axes 64ビット符号なし整数値のテンソルまたは none 型

結果

結果 説明
reduced 32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、または bfloat16 型値のテンソル

onnx.ReduceLogSumV13 (ONNXReduceLogSumV13Op)

ONNX ReduceLogSum演算

指定された軸に沿って、入力テンソルの要素のログ和を計算します。 keepdims が 1 の場合、結果のテンソルは入力と同じランクを持ちます。keepdims が 0 の場合、結果のテンソルは縮小された次元が削除されます。ランク 0 の入力テンソルは有効です。値の空のセットに対する縮小は、(データ型でサポートされている場合は) マイナス無限大を生成し、それ以外の場合は未定義を生成します。

上記の動作はnumpyに似ていますが、numpyのデフォルトではkeepdimsTrueではなくFalseである点が異なります。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
axes::mlir::ArrayAttr64ビット整数配列属性
keepdims::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
data 32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、または bfloat16 型値のテンソル

結果

結果 説明
reduced 32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、または bfloat16 型値のテンソル

onnx.ReduceMax (ONNXReduceMaxOp)

ONNX ReduceMax 操作

指定された軸に沿って、入力テンソルの要素の最大値を計算します。keepdims が 1 の場合、結果のテンソルは入力と同じランクを持ちます。keepdims が 0 の場合、結果のテンソルは縮小された次元が削除されます。ランク 0 の入力テンソルは有効です。値の空のセットに対する縮小は、(データ型でサポートされている場合は) マイナス無限大を生成し、それ以外の場合はデータ型の最小値を生成します。

入力データ型がブール値の場合、比較では False < True を考慮する必要があります。

上記の動作はnumpyに似ていますが、numpyのデフォルトではkeepdimsTrueではなくFalseである点が異なります。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
keepdims::mlir::IntegerAttr64ビット符号付き整数属性
noop_with_empty_axes::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
data 32 ビット符号なし整数値のテンソル、64 ビット符号なし整数値のテンソル、32 ビット符号なし整数値のテンソル、64 ビット符号なし整数値のテンソル、16 ビット浮動小数点値のテンソル、32 ビット浮動小数点値のテンソル、64 ビット浮動小数点値のテンソル、bfloat16 型の値のテンソル、8 ビット符号なし整数値のテンソル、8 ビット符号なし整数値のテンソル、または 1 ビット符号なし整数値のテンソル
axes 64ビット符号なし整数値のテンソルまたは none 型

結果

結果 説明
reduced 32 ビット符号なし整数値のテンソル、64 ビット符号なし整数値のテンソル、32 ビット符号なし整数値のテンソル、64 ビット符号なし整数値のテンソル、16 ビット浮動小数点値のテンソル、32 ビット浮動小数点値のテンソル、64 ビット浮動小数点値のテンソル、bfloat16 型の値のテンソル、8 ビット符号なし整数値のテンソル、8 ビット符号なし整数値のテンソル、または 1 ビット符号なし整数値のテンソル

onnx.ReduceMaxV13 (ONNXReduceMaxV13Op)

ONNX ReduceMax 操作

指定された軸に沿って、入力テンソルの要素の最大値を計算します。keepdims が 1 の場合、結果のテンソルは入力と同じランクを持ちます。keepdims が 0 の場合、結果のテンソルは縮小された次元が削除されます。ランク 0 の入力テンソルは有効です。値の空のセットに対する縮小は、(データ型でサポートされている場合は) マイナス無限大を生成し、それ以外の場合はデータ型の最小値を生成します。

上記の動作はnumpyに似ていますが、numpyのデフォルトではkeepdimsTrueではなくFalseである点が異なります。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
axes::mlir::ArrayAttr64ビット整数配列属性
keepdims::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
data 32 ビット符号なし整数値のテンソル、64 ビット符号なし整数値のテンソル、32 ビット符号なし整数値のテンソル、64 ビット符号なし整数値のテンソル、16 ビット浮動小数点値のテンソル、32 ビット浮動小数点値のテンソル、64 ビット浮動小数点値のテンソル、bfloat16 型の値のテンソル、8 ビット符号なし整数値のテンソル、または 8 ビット符号なし整数値のテンソル

結果

結果 説明
reduced 32 ビット符号なし整数値のテンソル、64 ビット符号なし整数値のテンソル、32 ビット符号なし整数値のテンソル、64 ビット符号なし整数値のテンソル、16 ビット浮動小数点値のテンソル、32 ビット浮動小数点値のテンソル、64 ビット浮動小数点値のテンソル、bfloat16 型の値のテンソル、8 ビット符号なし整数値のテンソル、または 8 ビット符号なし整数値のテンソル

onnx.ReduceMaxV18 (ONNXReduceMaxV18Op)

ONNX ReduceMax 操作

指定された軸に沿って、入力テンソルの要素の最大値を計算します。keepdims が 1 の場合、結果のテンソルは入力と同じランクを持ちます。keepdims が 0 の場合、結果のテンソルは縮小された次元が削除されます。ランク 0 の入力テンソルは有効です。値の空のセットに対する縮小は、(データ型でサポートされている場合は) マイナス無限大を生成し、それ以外の場合はデータ型の最小値を生成します。

上記の動作はnumpyに似ていますが、numpyのデフォルトではkeepdimsTrueではなくFalseである点が異なります。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
keepdims::mlir::IntegerAttr64ビット符号付き整数属性
noop_with_empty_axes::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
data 32 ビット符号なし整数値のテンソル、64 ビット符号なし整数値のテンソル、32 ビット符号なし整数値のテンソル、64 ビット符号なし整数値のテンソル、16 ビット浮動小数点値のテンソル、32 ビット浮動小数点値のテンソル、64 ビット浮動小数点値のテンソル、bfloat16 型の値のテンソル、8 ビット符号なし整数値のテンソル、または 8 ビット符号なし整数値のテンソル
axes 64ビット符号なし整数値のテンソルまたは none 型

結果

結果 説明
reduced 32 ビット符号なし整数値のテンソル、64 ビット符号なし整数値のテンソル、32 ビット符号なし整数値のテンソル、64 ビット符号なし整数値のテンソル、16 ビット浮動小数点値のテンソル、32 ビット浮動小数点値のテンソル、64 ビット浮動小数点値のテンソル、bfloat16 型の値のテンソル、8 ビット符号なし整数値のテンソル、または 8 ビット符号なし整数値のテンソル

onnx.ReduceMean (ONNXReduceMeanOp)

ONNX ReduceMean 操作

指定された軸に沿って、入力テンソルの要素の平均値を計算します。keepdims が 1 の場合、結果のテンソルは入力と同じランクを持ちます。keepdims が 0 の場合、結果のテンソルは縮小された次元が削除されます。ランク 0 の入力テンソルは有効です。値の空のセットに対する縮小は、未定義を生成します。

上記の動作はnumpyに似ていますが、numpyのデフォルトではkeepdimsTrueではなくFalseである点が異なります。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
keepdims::mlir::IntegerAttr64ビット符号付き整数属性
noop_with_empty_axes::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
data 32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、または bfloat16 型値のテンソル
axes 64ビット符号なし整数値のテンソルまたは none 型

結果

結果 説明
reduced 32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、または bfloat16 型値のテンソル

onnx.ReduceMeanV13 (ONNXReduceMeanV13Op)

ONNX ReduceMean 操作

指定された軸に沿って、入力テンソルの要素の平均値を計算します。keepdims が 1 の場合、結果のテンソルは入力と同じランクを持ちます。keepdims が 0 の場合、結果のテンソルは縮小された次元が削除されます。ランク 0 の入力テンソルは有効です。値の空のセットに対する縮小は、未定義を生成します。

上記の動作はnumpyに似ていますが、numpyのデフォルトではkeepdimsTrueではなくFalseである点が異なります。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
axes::mlir::ArrayAttr64ビット整数配列属性
keepdims::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
data 32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、または bfloat16 型値のテンソル

結果

結果 説明
reduced 32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、または bfloat16 型値のテンソル

onnx.ReduceMin (ONNXReduceMinOp)

ONNX ReduceMin 操作

指定された軸に沿って、入力テンソルの要素の最小値を計算します。keepdims が 1 の場合、結果のテンソルは入力と同じランクを持ちます。keepdims が 0 の場合、結果のテンソルは縮小された次元が削除されます。ランク 0 の入力テンソルは有効です。値の空のセットに対する縮小は、(データ型でサポートされている場合は) プラス無限大を生成し、それ以外の場合はデータ型の最大値を生成します。

入力データ型がブール値の場合、比較では False < True を考慮する必要があります。

上記の動作はnumpyに似ていますが、numpyのデフォルトではkeepdimsTrueではなくFalseである点が異なります。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
keepdims::mlir::IntegerAttr64ビット符号付き整数属性
noop_with_empty_axes::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
data 32 ビット符号なし整数値のテンソル、64 ビット符号なし整数値のテンソル、32 ビット符号なし整数値のテンソル、64 ビット符号なし整数値のテンソル、16 ビット浮動小数点値のテンソル、32 ビット浮動小数点値のテンソル、64 ビット浮動小数点値のテンソル、bfloat16 型の値のテンソル、8 ビット符号なし整数値のテンソル、8 ビット符号なし整数値のテンソル、または 1 ビット符号なし整数値のテンソル
axes 64ビット符号なし整数値のテンソルまたは none 型

結果

結果 説明
reduced 32 ビット符号なし整数値のテンソル、64 ビット符号なし整数値のテンソル、32 ビット符号なし整数値のテンソル、64 ビット符号なし整数値のテンソル、16 ビット浮動小数点値のテンソル、32 ビット浮動小数点値のテンソル、64 ビット浮動小数点値のテンソル、bfloat16 型の値のテンソル、8 ビット符号なし整数値のテンソル、8 ビット符号なし整数値のテンソル、または 1 ビット符号なし整数値のテンソル

onnx.ReduceMinV13 (ONNXReduceMinV13Op)

ONNX ReduceMin 操作

指定された軸に沿って、入力テンソルの要素の最小値を計算します。keepdims が 1 の場合、結果のテンソルは入力と同じランクを持ちます。keepdims が 0 の場合、結果のテンソルは縮小された次元が削除されます。ランク 0 の入力テンソルは有効です。値の空のセットに対する縮小は、(データ型でサポートされている場合は) プラス無限大を生成し、それ以外の場合はデータ型の最大値を生成します。

上記の動作はnumpyに似ていますが、numpyのデフォルトではkeepdimsTrueではなくFalseである点が異なります。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
axes::mlir::ArrayAttr64ビット整数配列属性
keepdims::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
data 32 ビット符号なし整数値のテンソル、64 ビット符号なし整数値のテンソル、32 ビット符号なし整数値のテンソル、64 ビット符号なし整数値のテンソル、16 ビット浮動小数点値のテンソル、32 ビット浮動小数点値のテンソル、64 ビット浮動小数点値のテンソル、bfloat16 型の値のテンソル、8 ビット符号なし整数値のテンソル、または 8 ビット符号なし整数値のテンソル

結果

結果 説明
reduced 32 ビット符号なし整数値のテンソル、64 ビット符号なし整数値のテンソル、32 ビット符号なし整数値のテンソル、64 ビット符号なし整数値のテンソル、16 ビット浮動小数点値のテンソル、32 ビット浮動小数点値のテンソル、64 ビット浮動小数点値のテンソル、bfloat16 型の値のテンソル、8 ビット符号なし整数値のテンソル、または 8 ビット符号なし整数値のテンソル

onnx.ReduceMinV18 (ONNXReduceMinV18Op)

ONNX ReduceMin 操作

指定された軸に沿って、入力テンソルの要素の最小値を計算します。keepdims が 1 の場合、結果のテンソルは入力と同じランクを持ちます。keepdims が 0 の場合、結果のテンソルは縮小された次元が削除されます。ランク 0 の入力テンソルは有効です。値の空のセットに対する縮小は、(データ型でサポートされている場合は) プラス無限大を生成し、それ以外の場合はデータ型の最大値を生成します。

上記の動作はnumpyに似ていますが、numpyのデフォルトではkeepdimsTrueではなくFalseである点が異なります。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
keepdims::mlir::IntegerAttr64ビット符号付き整数属性
noop_with_empty_axes::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
data 32 ビット符号なし整数値のテンソル、64 ビット符号なし整数値のテンソル、32 ビット符号なし整数値のテンソル、64 ビット符号なし整数値のテンソル、16 ビット浮動小数点値のテンソル、32 ビット浮動小数点値のテンソル、64 ビット浮動小数点値のテンソル、bfloat16 型の値のテンソル、8 ビット符号なし整数値のテンソル、または 8 ビット符号なし整数値のテンソル
axes 64ビット符号なし整数値のテンソルまたは none 型

結果

結果 説明
reduced 32 ビット符号なし整数値のテンソル、64 ビット符号なし整数値のテンソル、32 ビット符号なし整数値のテンソル、64 ビット符号なし整数値のテンソル、16 ビット浮動小数点値のテンソル、32 ビット浮動小数点値のテンソル、64 ビット浮動小数点値のテンソル、bfloat16 型の値のテンソル、8 ビット符号なし整数値のテンソル、または 8 ビット符号なし整数値のテンソル

onnx.ReduceProd (ONNXReduceProdOp)

ONNX ReduceProd 操作

指定された軸に沿って、入力テンソルの要素の積を計算します。keepdims が 1 の場合、結果のテンソルは入力と同じランクを持ちます。keepdims が 0 の場合、結果のテンソルは縮小された次元が削除されます。ランク 0 の入力テンソルは有効です。値の空のセットに対する縮小は、1 を生成します。

上記の動作はnumpyに似ていますが、numpyのデフォルトではkeepdimsTrueではなくFalseである点が異なります。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
keepdims::mlir::IntegerAttr64ビット符号付き整数属性
noop_with_empty_axes::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
data 32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、または bfloat16 型値のテンソル
axes 64ビット符号なし整数値のテンソルまたは none 型

結果

結果 説明
reduced 32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、または bfloat16 型値のテンソル

onnx.ReduceProdV13 (ONNXReduceProdV13Op)

ONNX ReduceProd 操作

指定された軸に沿って、入力テンソルの要素の積を計算します。keepdims が 1 の場合、結果のテンソルは入力と同じランクを持ちます。keepdims が 0 の場合、結果のテンソルは縮小された次元が削除されます。ランク 0 の入力テンソルは有効です。値の空のセットに対する縮小は、1 を生成します。

上記の動作はnumpyに似ていますが、numpyのデフォルトではkeepdimsTrueではなくFalseである点が異なります。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
axes::mlir::ArrayAttr64ビット整数配列属性
keepdims::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
data 32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、または bfloat16 型値のテンソル

結果

結果 説明
reduced 32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、または bfloat16 型値のテンソル

onnx.ReduceSum (ONNXReduceSumOp)

ONNX ReduceSum 操作

指定された軸に沿って、入力テンソルの要素の合計を計算します。keepdims が 1 の場合、結果のテンソルは入力と同じランクを持ちます。keepdims が 0 の場合、結果のテンソルは縮小された次元が削除されます。ランク 0 の入力テンソルは有効です。値の空のセットに対する縮小は、0 を生成します。

上記の動作はnumpyに似ていますが、numpyのデフォルトではkeepdimsTrueではなくFalseである点が異なります。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
keepdims::mlir::IntegerAttr64ビット符号付き整数属性
noop_with_empty_axes::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
data 32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、または bfloat16 型値のテンソル
axes 64ビット符号なし整数値のテンソルまたは none 型

結果

結果 説明
reduced 32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、または bfloat16 型値のテンソル

onnx.ReduceSumSquare (ONNXReduceSumSquareOp)

ONNX ReduceSumSquare 操作

指定された軸に沿って、入力テンソルの要素の二乗和を計算します。keepdims が 1 の場合、結果のテンソルは入力と同じランクを持ちます。keepdims が 0 の場合、結果のテンソルは縮小された次元が削除されます。ランク 0 の入力テンソルは有効です。値の空のセットに対する縮小は、0 を生成します。

上記の動作はnumpyに似ていますが、numpyのデフォルトではkeepdimsTrueではなくFalseである点が異なります。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
keepdims::mlir::IntegerAttr64ビット符号付き整数属性
noop_with_empty_axes::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
data 32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、または bfloat16 型値のテンソル
axes 64ビット符号なし整数値のテンソルまたは none 型

結果

結果 説明
reduced 32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、または bfloat16 型値のテンソル

onnx.ReduceSumSquareV13 (ONNXReduceSumSquareV13Op)

ONNX ReduceSumSquare 操作

指定された軸に沿って、入力テンソルの要素の二乗和を計算します。keepdims が 1 の場合、結果のテンソルは入力と同じランクを持ちます。keepdims が 0 の場合、結果のテンソルは縮小された次元が削除されます。ランク 0 の入力テンソルは有効です。値の空のセットに対する縮小は、0 を生成します。

上記の動作はnumpyに似ていますが、numpyのデフォルトではkeepdimsTrueではなくFalseである点が異なります。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
axes::mlir::ArrayAttr64ビット整数配列属性
keepdims::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
data 32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、または bfloat16 型値のテンソル

結果

結果 説明
reduced 32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、または bfloat16 型値のテンソル

onnx.ReduceSumV11 (ONNXReduceSumV11Op)

ONNX ReduceSum 操作

指定された軸に沿って、入力テンソルの要素の合計を計算します。keepdims が 1 の場合、結果のテンソルは入力と同じランクを持ちます。keepdims が 0 の場合、結果のテンソルは縮小された次元が削除されます。

上記の動作は numpy と似ていますが、numpy は keepdims のデフォルトが True ではなく False である点が異なります。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
axes::mlir::ArrayAttr64ビット整数配列属性
keepdims::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
data 32 ビット符号なし整数値のテンソル、64 ビット符号なし整数値のテンソル、32 ビット符号なし整数値のテンソル、64 ビット符号なし整数値のテンソル、16 ビット浮動小数点値のテンソル、32 ビット浮動小数点値のテンソル、または 64 ビット浮動小数点値のテンソル

結果

結果 説明
reduced 32 ビット符号なし整数値のテンソル、64 ビット符号なし整数値のテンソル、32 ビット符号なし整数値のテンソル、64 ビット符号なし整数値のテンソル、16 ビット浮動小数点値のテンソル、32 ビット浮動小数点値のテンソル、または 64 ビット浮動小数点値のテンソル

onnx.Relu (ONNXReluOp)

ONNX Relu 操作

Relu は 1 つの入力データ (テンソル) を受け取ります)を受け取り、1つの出力データ(Tensorここで、整流線形関数 y = max(0, x) がテンソル要素ごとに適用されます。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
X 32ビット浮動小数点値のテンソル、32ビット符号なし整数値のテンソル、8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、16ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、またはbfloat16型値のテンソル

結果

結果 説明
Y 32ビット浮動小数点値のテンソル、32ビット符号なし整数値のテンソル、8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、16ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、またはbfloat16型値のテンソル

onnx.Reshape (ONNXReshapeOp)

ONNX Reshape 操作

numpy.reshape と同様に入力テンソルをリシェイプします。最初の入力はデータテンソル、2 番目の入力は出力形状を指定する形状テンソルです。リシェイプされたテンソルを出力します。新しい形状の次元は最大で 1 つが -1 になります。この場合、値はテンソルのサイズと残りの次元から推測されます。次元は 0 にすることもでき、その場合、実際の次元値は変更されません (つまり、入力テンソルから取得されます)。'allowzero' が設定され、新しい形状に 0 が含まれている場合、次元は明示的に 0 に設定されます (つまり、入力テンソルから取得されません)。形状 (2 番目の入力) は、スカラーに変換することを意味する空の形状にすることができます。入力テンソルの形状と出力テンソルの形状には、同じ数の要素が必要です。

属性 'allowzero' が設定されている場合、指定された形状に 0 の値と -1 の両方が含まれていると、-1 に対応する次元の値が一意に決定できないため、無効になります。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
allowzero::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
data 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、bfloat16型値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型値のテンソル、64ビット浮動小数点要素を持つ複素数型値のテンソル、f8E4M3FN型値のテンソル、f8E4M3FNUZ型値のテンソル、f8E5M2型値のテンソル、f8E5M2FNUZ型値のテンソル
shape 64ビット符号なし整数値のテンソル

結果

結果 説明
リシェイプされた 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、bfloat16型値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型値のテンソル、64ビット浮動小数点要素を持つ複素数型値のテンソル、f8E4M3FN型値のテンソル、f8E4M3FNUZ型値のテンソル、f8E5M2型値のテンソル、f8E5M2FNUZ型値のテンソル

onnx.Resize (ONNXResizeOp)

ONNX Resize 操作

入力テンソルのサイズを変更します。一般に、出力テンソル内のすべての値は、入力テンソル内の近傍 (別名、サンプリング位置) の加重平均として計算されます。出力テンソルの各次元の値は

output_dimension = floor(input_dimension * (roi_end - roi_start) * scale)

入力「サイズ」が指定されていない場合。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
アンチエイリアス::mlir::IntegerAttr64ビット符号付き整数属性
axes::mlir::ArrayAttr64ビット整数配列属性
座標変換モード::mlir::StringAttr文字列属性
cubic_coeff_a::mlir::FloatAttr32ビット浮動小数点属性
exclude_outside::mlir::IntegerAttr64ビット符号付き整数属性
外挿値::mlir::FloatAttr32ビット浮動小数点属性
アスペクト比維持ポリシー::mlir::StringAttr文字列属性
mode::mlir::StringAttr文字列属性
nearest_mode::mlir::StringAttr文字列属性

オペランド

オペランド 説明
X 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、bfloat16型の値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル
roi 16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、または none 型
スケール 32ビット浮動小数点値のテンソルまたはnone型
サイズ 64ビット符号なし整数値のテンソルまたは none 型

結果

結果 説明
Y 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、bfloat16型の値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル

onnx.ResizeV10 (ONNXResizeV10Op)

ONNX Resize 操作

入力テンソルのサイズを変更します。出力テンソルの各次元の値は次のようになります。 output_dimension = floor(input_dimension * scale)。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
mode::mlir::StringAttr文字列属性

オペランド

オペランド 説明
X 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル
スケール 32ビット浮動小数点値のテンソル

結果

結果 説明
Y 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル

onnx.ResizeV11 (ONNXResizeV11Op)

ONNX Resize 操作

入力テンソルのサイズを変更します。一般に、出力テンソル内のすべての値は、入力テンソル内の近傍 (別名、サンプリング位置) の加重平均として計算されます。出力テンソルの各次元の値は次のようになります。 output_dimension = floor(input_dimension * (roi_end - roi_start) * scale) (入力「サイズ」が指定されていない場合)。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
座標変換モード::mlir::StringAttr文字列属性
cubic_coeff_a::mlir::FloatAttr32ビット浮動小数点属性
exclude_outside::mlir::IntegerAttr64ビット符号付き整数属性
外挿値::mlir::FloatAttr32ビット浮動小数点属性
mode::mlir::StringAttr文字列属性
nearest_mode::mlir::StringAttr文字列属性

オペランド

オペランド 説明
X 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル
roi 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル
スケール 32ビット浮動小数点値のテンソル
サイズ 64ビット符号なし整数値のテンソルまたは none 型

結果

結果 説明
Y 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル

onnx.ResizeV13 (ONNXResizeV13Op)

ONNX Resize 操作

入力テンソルのサイズを変更します。一般に、出力テンソル内のすべての値は、入力テンソル内の近傍 (別名、サンプリング位置) の加重平均として計算されます。出力テンソルの各次元の値は次のようになります。 output_dimension = floor(input_dimension * (roi_end - roi_start) * scale) (入力「サイズ」が指定されていない場合)。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
座標変換モード::mlir::StringAttr文字列属性
cubic_coeff_a::mlir::FloatAttr32ビット浮動小数点属性
exclude_outside::mlir::IntegerAttr64ビット符号付き整数属性
外挿値::mlir::FloatAttr32ビット浮動小数点属性
mode::mlir::StringAttr文字列属性
nearest_mode::mlir::StringAttr文字列属性

オペランド

オペランド 説明
X 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、bfloat16型の値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル
roi 16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、または none 型
スケール 32ビット浮動小数点値のテンソルまたはnone型
サイズ 64ビット符号なし整数値のテンソルまたは none 型

結果

結果 説明
Y 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、bfloat16型の値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル

onnx.ResizeV18 (ONNXResizeV18Op)

ONNX Resize 操作

入力テンソルのサイズを変更します。一般に、出力テンソル内のすべての値は、入力テンソル内の近傍 (別名、サンプリング位置) の加重平均として計算されます。出力テンソルの各次元の値は
出力次元 = floor(入力次元 * (roi_end - roi_start) * スケール)
入力「サイズ」が指定されていない場合。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
アンチエイリアス::mlir::IntegerAttr64ビット符号付き整数属性
axes::mlir::ArrayAttr64ビット整数配列属性
座標変換モード::mlir::StringAttr文字列属性
cubic_coeff_a::mlir::FloatAttr32ビット浮動小数点属性
exclude_outside::mlir::IntegerAttr64ビット符号付き整数属性
外挿値::mlir::FloatAttr32ビット浮動小数点属性
アスペクト比維持ポリシー::mlir::StringAttr文字列属性
mode::mlir::StringAttr文字列属性
nearest_mode::mlir::StringAttr文字列属性

オペランド

オペランド 説明
X 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、bfloat16型の値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル
roi 16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、または none 型
スケール 32ビット浮動小数点値のテンソルまたはnone型
サイズ 64ビット符号なし整数値のテンソルまたは none 型

結果

結果 説明
Y 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、bfloat16型の値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル

onnx.Return (ONNXReturnOp)

関数リターン操作

構文

operation ::= `onnx.Return` attr-dict ($operands^ `:` type($operands))?

onnx.Return 操作は、関数内のリターン操作を表します。この操作は可変数のオペランドを取り、結果を生成しません。オペランドの数と型は、操作を含む関数の署名と一致する必要があります。ただし、形状付き型は関数の署名結果型よりも具体的な形状を持つことができ、これにより、オペランドの定義操作をリライトして結果の形状をより具体的にすることができます。この操作は、ONNX ダイアレクトの func::FuncOp を終了し、Krnl またはその他のダイアレクトに降格する前に、StandardFuncReturnPass で func::ReturnOp に置き換えられます。

Traits: AlwaysSpeculatableImplTrait, HasParent<func::FuncOp>, ReturnLike, Terminator

Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), RegionBranchTerminatorOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
オペランド 任意の型の可変長

onnx.ReverseSequence (ONNXReverseSequenceOp)

ONNX ReverseSequence 操作

sequence_lens で指定された異なる長さのシーケンスのバッチを反転させます。

バッチ軸で反復する各スライス i について、演算子は時間軸の最初の sequence_lens[i] 要素を反転させ、sequence_lens[i] を超えるインデックスを持つ要素を出力にコピーします。したがって、出力スライス i には、最初の sequence_lens[i] 要素で反転されたシーケンスが含まれ、他の要素には元の値がコピーされます。

例 1: 入力 = [[0.0, 4.0, 8.0, 12.0], [1.0, 5.0, 9.0, 13.0], [2.0, 6.0, 10.0, 14.0], [3.0, 7.0, 11.0, 15.0]] sequence_lens = [4, 3, 2, 1] time_axis = 0 batch_axis = 1

出力 = [[3.0, 6.0, 9.0, 12.0], [2.0, 5.0, 8.0, 13.0], [1.0, 4.0, 10.0, 14.0], [0.0, 7.0, 11.0, 15.0]]

例 2: 入力 = [[0.0, 1.0, 2.0, 3.0 ], [4.0, 5.0, 6.0, 7.0 ], [8.0, 9.0, 10.0, 11.0], [12.0, 13.0, 14.0, 15.0]] sequence_lens = [1, 2, 3, 4] time_axis = 1 batch_axis = 0

出力 = [[0.0, 1.0, 2.0, 3.0 ], [5.0, 4.0, 6.0, 7.0 ], [10.0, 9.0, 8.0, 11.0], [15.0, 14.0, 13.0, 12.0]]

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
batch_axis::mlir::IntegerAttr64ビット符号付き整数属性
time_axis::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
入力 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル
sequence_lens 64ビット符号なし整数値のテンソル

結果

結果 説明
Y 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル

onnx.RoiAlign (ONNXRoiAlignOp)

ONNX RoiAlign 操作

Region of Interest (RoI) アライン演算は、Mask R-CNN論文で説明されています。RoiAlignは、入力テンソルXと関心領域(rois)を受け取り、各RoIにプーリングを適用します。出力は、形状が(num_rois, C, output_height, output_width)の4次元テンソルとなります。

RoiAlignは、元の画像から特徴マップへの変換、および特徴マップからRoI特徴への変換時に量子化によるずれを回避するために提案されました。各ROIビンでは、サンプリングされた位置の値は、双線形補間によって直接計算されます。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
座標変換モード::mlir::StringAttr文字列属性
mode::mlir::StringAttr文字列属性
output_height::mlir::IntegerAttr64ビット符号付き整数属性
output_width::mlir::IntegerAttr64ビット符号付き整数属性
sampling_ratio::mlir::IntegerAttr64ビット符号付き整数属性
spatial_scale::mlir::FloatAttr32ビット浮動小数点属性

オペランド

オペランド 説明
X 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル
rois 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル
batch_indices 64ビット符号なし整数値のテンソル

結果

結果 説明
Y 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

onnx.Round (ONNXRoundOp)

ONNX Round演算

Roundは、1つの入力テンソルを受け取り、要素ごとに値を丸めます。つまり、各値に最も近い整数を見つけます。中間の場合は、最も近い偶数に丸めるルールです。入力xが整数、+0、-0、NaN、または無限大の場合、x自体が返されます。出力テンソルは、入力と同じ形状と型を持ちます。

round([0.9]) = [1.0]
round([2.5]) = [2.0]
round([2.3]) = [2.0]
round([1.5]) = [2.0]
round([-4.5]) = [-4.0]

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
X 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

結果

結果 説明
Y 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

onnx.STFT (ONNXSTFTOp)

ONNX STFT演算

信号の短時間フーリエ変換を計算します。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
onesided::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
signal 32ビット浮動小数点値のテンソル、または16ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型の値のテンソル
frame_step 32ビット符号なし整数値のテンソルまたは64ビット符号なし整数値のテンソル
window 32ビット浮動小数点値のテンソル、16ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、bfloat16型値のテンソル、またはNone型
frame_length 32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、または none 型

結果

結果 説明
出力 32ビット浮動小数点値のテンソル、または16ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型の値のテンソル

onnx.SVMClassifier (ONNXSVMClassifierOp)

ONNX SVMClassifier演算

サポートベクターマシン分類器

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
classlabels_ints::mlir::ArrayAttr64ビット整数配列属性
classlabels_strings::mlir::ArrayAttr文字列配列属性
coefficients::mlir::ArrayAttr32ビット浮動小数点配列属性
kernel_params::mlir::ArrayAttr32ビット浮動小数点配列属性
kernel_type::mlir::StringAttr文字列属性
post_transform::mlir::StringAttr文字列属性
prob_a::mlir::ArrayAttr32ビット浮動小数点配列属性
prob_b::mlir::ArrayAttr32ビット浮動小数点配列属性
rho::mlir::ArrayAttr32ビット浮動小数点配列属性
support_vectors::mlir::ArrayAttr32ビット浮動小数点配列属性
vectors_per_class::mlir::ArrayAttr64ビット整数配列属性

オペランド

オペランド 説明
X 32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、または64ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル

結果

結果 説明
Y 文字列型の値のテンソルまたは64ビット符号なし整数値のテンソル
Z 32ビット浮動小数点値のテンソル

onnx.SVMRegressor (ONNXSVMRegressorOp)

ONNX SVMRegressor演算

サポートベクターマシンの回帰予測と、1クラスSVM異常検知。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
coefficients::mlir::ArrayAttr32ビット浮動小数点配列属性
kernel_params::mlir::ArrayAttr32ビット浮動小数点配列属性
kernel_type::mlir::StringAttr文字列属性
n_supports::mlir::IntegerAttr64ビット符号付き整数属性
one_class::mlir::IntegerAttr64ビット符号付き整数属性
post_transform::mlir::StringAttr文字列属性
rho::mlir::ArrayAttr32ビット浮動小数点配列属性
support_vectors::mlir::ArrayAttr32ビット浮動小数点配列属性

オペランド

オペランド 説明
X 32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、または64ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル

結果

結果 説明
Y 32ビット浮動小数点値のテンソル

onnx.Scaler (ONNXScalerOp)

ONNX Scaler演算

入力データのリスケールを行います。たとえば、平均を削除し、単位分散にスケーリングして特徴量を標準化します。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
offset::mlir::ArrayAttr32ビット浮動小数点配列属性
scale::mlir::ArrayAttr32ビット浮動小数点配列属性

オペランド

オペランド 説明
X 32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、または64ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル

結果

結果 説明
Y 32ビット浮動小数点値のテンソル

onnx.Scan (ONNXScanOp)

ONNX Scan演算

Scanは、1つ以上のscan_inputテンソルを反復処理し、ゼロ個以上のscan_outputテンソルを構築するために使用できます。これは、一般的な再帰、scan、fold、map、zipなどの関数型プログラミング構造からのアイデアを組み合わせており、シーケンスからシーケンスへの処理におけるRNNのような構造の一般化を可能にすることを目的としています。他のテンソル(ここではstate_variablesと呼びます)は、ある要素から別の要素に反復処理するときに状態を保持するために使用できます(RNNの隠れ状態に似ており、ループのコンテキストではループ伝搬依存関係とも呼ばれます)。多くの一般的な使用法には、単一のscan_inputテンソルが含まれます(scan、fold、mapと同様の機能が得られます)。複数のscan_inputを使用する場合は、zipと同様の動作が得られます。

属性bodyは、各反復で実行される計算を指定するグラフである必要があります。これは、state_variablesの現在の値とscan_inputsの現在の反復要素を入力として受け取ります。state_variablesの(更新された)値と、ゼロ個以上のscan_output_elementテンソルを返す必要があります。scan_output_elementテンソルの値は、すべての反復で連結され、scan構成のscan_output値を生成します(RNNのような構造の連結された中間隠れ状態値と同様)。すべての出力テンソル(state_variablesとscan_output_elementテンソルの両方)は、ループの各反復で同じ形状を持つ必要があります(効率的なメモリ割り当てを可能にするために課せられた制限)。

bodyサブグラフに渡される反復要素には、シーケンス軸がないことに注意してください。対応するscan_inputのランクよりも1つ低いランクになります。

scan演算は、state_variablesの最終値とscan_outputsを返します。

オプションの属性scan_input_directionsは、各スキャン入力の方向(順方向または逆方向)を指定します。この属性を省略すると、すべてのシーケンスは順方向にスキャンされます。双方向スキャンは、同じテンソル入力をscan_inputsで2回指定することで実行できます。1回は順方向、もう1回は逆方向です。

演算のscan_outputは、各反復でbodyによって生成されたscan_output_elementの値を連結することによって生成されます。オプションの属性scan_output_directionsは、各scan_outputに対してscan_outputが構築される方向(各反復でscan_output_elementをscan_outputに追加または前に追加することによって)を指定します。この属性を省略すると、scan_output_elementは各反復でscan_outputに追加されます。

オプションの属性scan_input_axesは、各scan_inputに対してスキャンされる軸を指定します。省略した場合、すべてのscan_inputは軸0でスキャンされます。たとえば、軸0がバッチ軸で、軸1が時間軸(スキャン対象)である場合、軸値1を指定します。ゼロ以外の軸のスキャンは、軸ゼロのスキャンよりも効率が低い場合があることに注意してください。

オプションの属性scan_output_axesは、各scan_outputに対してscan_outputsが累積される軸を指定します。たとえば、入力と出力の両方に対して軸1が時間軸(スキャン対象)である場合、scan_input軸とscan_output軸の値1を指定します。

演算子の最後のパラメーターのみが可変長であるというONNXの制限のため、初期状態とscan-inputsは1つの入力パラメーターとして一緒にリストされることに注意してください。同様に、最終状態とscan-outputsは1つの出力パラメーターとして一緒にリストされます。属性num_scan_inputsは、scan-inputsの数Mを示します。

の動作

Scan <
    num_scan_inputs = m,
    body = loop-body,
    scan_input_axes = [axis_1, ..., axis_m]
> (init_1, ..., init_n, scan_1, ..., scan_m)

は、次の疑似コードと同等です

// scan_i.shape[axis_i] denotes the (max) sequence-length of scan_i
// scan_i.shape[axis_i] is required to be equal to scan_j.shape[axis_j] for all i,j.
sequence_length = scan_1.shape[axis_1];

// initialize state-variables
st_1 = init_1; ... st_n = init_n;
// initialize scan-output variables: [] denotes an empty tensor
scan_out_1 = []; ...; scan_out_k = [];
// identify number of iterations:

// execute loop
for (int t = 0; t < sequence_length; ++t) {
    // generate the scan-input elements: the notation T<axis=k>[t] indicates the sub-tensor
    // of rank one less than T obtained by indexing T at position t along axis k.
    si_1 = scan_1<axis=axis_1>[t];
    ... ;
    si_m = scan_m<axis=axis_m>[t];
    // execute loop-body
    st_1, ..., st_n, so_1, ..., so_k = loop-body(st_1, ..., st_n, si_1, ..., si_m)
    // accumulate the scan-output elements
    scan_out_1 = Concat<axis=0>(scan_out_1, so_1); ... ; scan_out_k = Concat<axis=0>(scan_out_k, so_k);
}

return st_1, ..., st_n, scan_out_1, ..., scan_out_k;

サンプル使用法:Scanを使用したRNNのエンコード

次の例は、入力テンソル%X、重みテンソル%Wi、再帰重みテンソル%Ri、バイアステンソル%Wbiおよび%Rbi、および初期隠れ状態%H_0に対する単純なRNNを、ScanLoopとしてエンコードする方法を示しています。ループ本体はネストされたグラフであり、%Wi、%Ri、%Wbi、および%Rbi(通常、本体グラフ内の定数または初期化子)を直接計算することに注意してください。これらの値が外側のグラフで計算される場合、追加のstate_variablesとして渡す必要があります。

graph rnn-encoding {
  %H_0 = ...
  %X = ...
  %Y_h, %Y = Scan[body = <graph rnn-cell-1>, num_scan_inputs=1](%H_0, %X)
  return %Y, %Y_h
}

graph rnn-cell-1 (
  %H_tminus1[FLOAT, tensor]
  %X_t[FLOAT, tensor]
) {
  %Wi = ...
  %Ri = ...
  %Wbi = ...
  %Rbi = ...
  %t1 = X_t * (Wi^T)
  %t2 = H_tminus1*(Ri^T)
  %t3 = Add(%t1, %t2)
  %t4 = Add(%t3, %Wbi)
  %t5 = Add(%t4, %Rbi)
  %Ht = Tanh(%t5)
  %Accumulate = Identity(%Ht)
  return %Ht, %Accumulate
}

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, HasOnnxSubgraphOpInterface, NoMemoryEffect (MemoryEffectOpInterface), ResultTypeInferenceOpInterface, ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
num_scan_inputs::mlir::IntegerAttr64ビット符号付き整数属性
scan_input_axes::mlir::ArrayAttr64ビット整数配列属性
scan_input_directions::mlir::ArrayAttr64ビット整数配列属性
scan_output_axes::mlir::ArrayAttr64ビット整数配列属性
scan_output_directions::mlir::ArrayAttr64ビット整数配列属性

オペランド

オペランド 説明
initial_state_and_scan_inputs 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、bfloat16型値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素値を持つ複素数型テンソル、64ビット浮動小数点要素値を持つ複素数型テンソル、f8E4M3FN型値のテンソル、f8E4M3FNUZ型値のテンソル、f8E5M2型値のテンソル、またはf8E5M2FNUZ型値のテンソルの可変長

結果

結果 説明
final_state_and_scan_outputs 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、bfloat16型値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素値を持つ複素数型テンソル、64ビット浮動小数点要素値を持つ複素数型テンソル、f8E4M3FN型値のテンソル、f8E4M3FNUZ型値のテンソル、f8E5M2型値のテンソル、またはf8E5M2FNUZ型値のテンソルの可変長

onnx.ScatterElements (ONNXScatterElementsOp)

ONNX ScatterElements演算

ScatterElementsは、同じランクr >= 1の3つの入力dataupdates、およびindicesと、dataの軸を識別するオプションの属性axis(デフォルトでは、最も外側の軸、つまり軸0)を受け取ります。演算の出力は、入力dataのコピーを作成し、その値をindicesで指定された特定の位置でupdatesで指定された値に更新することによって生成されます。出力形状は、dataの形状と同じです。

updatesの各エントリに対して、data内のターゲットインデックスは、indices内の対応するエントリをエントリ自体のインデックスと組み合わせることによって取得されます。次元= axisのインデックス値は、indices内の対応するエントリの値から取得され、次元!= axisのインデックス値は、エントリ自体のインデックスから取得されます。

reductionを使用すると、オプションの削減演算の指定が可能になります。これは、indicesで指定されたoutputに、updatesテンソル内のすべての値に適用されます。reductionが「none」に設定されている場合、インデックスに重複するエントリを含めることはできません。つまり、idx1 != idx2の場合、indices[idx1] != indices[idx2]です。たとえば、2次元テンソルの場合、[i][j]エントリに対応する更新は次のように実行されます

output[indices[i][j]][j] = updates[i][j] if axis = 0,
output[i][indices[i][j]] = updates[i][j] if axis = 1,

reductionがある削減関数fに設定されている場合、[i][j]エントリに対応する更新は次のように実行されます

output[indices[i][j]][j] = f(output[indices[i][j]][j], updates[i][j]) if axis = 0,
output[i][indices[i][j]] = f(output[i][indices[i][j]], updates[i][j]) if axis = 1,

ここで、fは、指定されたように+*max、またはminです。

この演算子は、GatherElementsの逆です。これは、TorchのScatter演算に似ています。

(Opset 18の変更):許可される削減演算のセットにmax/minを追加します。

例 1

data = [
    [0.0, 0.0, 0.0],
    [0.0, 0.0, 0.0],
    [0.0, 0.0, 0.0],
]
indices = [
    [1, 0, 2],
    [0, 2, 1],
]
updates = [
    [1.0, 1.1, 1.2],
    [2.0, 2.1, 2.2],
]
output = [
    [2.0, 1.1, 0.0]
    [1.0, 0.0, 2.2]
    [0.0, 2.1, 1.2]
]

例 2

data = [[1.0, 2.0, 3.0, 4.0, 5.0]]
indices = [[1, 3]]
updates = [[1.1, 2.1]]
axis = 1
output = [[1.0, 1.1, 3.0, 2.1, 5.0]]

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
axis::mlir::IntegerAttr64ビット符号付き整数属性
reduction::mlir::StringAttr文字列属性

オペランド

オペランド 説明
data 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、bfloat16型の値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル
indices 32ビット符号なし整数値のテンソルまたは64ビット符号なし整数値のテンソル
updates 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、bfloat16型の値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル

結果

結果 説明
出力 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、bfloat16型の値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル

onnx.ScatterND (ONNXScatterNDOp)

ONNX ScatterND演算

ScatterNDは、ランクr >= 1の3つの入力dataテンソル、ランクq >= 1のindicesテンソル、およびランクq + r - indices.shape[-1] - 1のupdatesテンソルを受け取ります。演算の出力は、入力dataのコピーを作成し、その値をindicesで指定された特定の位置でupdatesで指定された値に更新することによって生成されます。出力形状は、dataの形状と同じです。

indicesは整数テンソルです。kをindices.shape[-1]、つまりindicesの形状の最後の次元とします。indicesは、kタプルの(q-1)次元テンソルとして扱われます。ここで、各kタプルはdataへの部分インデックスです。したがって、kは、dataのランクの最大値である可能性があります。kがrank(data)と等しい場合、各更新エントリはテンソルの単一の要素への更新を指定します。kがrank(data)よりも小さい場合、各更新エントリはテンソルのスライスへの更新を指定します。インデックス値は、末尾から逆方向にカウントするための通常の規則に従って負の値にすることができますが、有効な範囲内にあることが期待されます。

updatesは、置換スライス値の(q-1)次元テンソルとして扱われます。したがって、updates.shapeの最初の(q-1)次元は、indices.shapeの最初の(q-1)次元と一致する必要があります。updatesの残りの次元は、置換スライス値の次元に対応します。各置換スライス値は、dataの後続の(r-k)次元に対応する、(r-k)次元テンソルです。したがって、updatesの形状は、indices.shape[0:q-1] ++ data.shape[k:r-1]と等しくなければなりません。ここで、++は形状の連結を表します。

outputは、次の式で計算されます

output = np.copy(data)
update_indices = indices.shape[:-1]
for idx in np.ndindex(update_indices):
    output[indices[idx]] = updates[idx]

上記のループの反復順序は指定されていません。特に、インデックスに重複するエントリを含めることはできません。つまり、idx1 != idx2の場合、indices[idx1] != indices[idx2]です。これにより、出力値が反復順序に依存しないことが保証されます。

reduction はオプションのreduction演算の指定を可能にします。これは、指定されたindicesにあるoutputに、updatesテンソルのすべての値に適用されます。reductionが"none"に設定されている場合、インデックスに重複したエントリがあってはなりません。つまり、idx1 != idx2の場合、indices[idx1] != indices[idx2]である必要があります。これにより、出力値がイテレーションの順序に依存しないことが保証されます。reductionが何らかのreduction関数fに設定されている場合、outputは次のように計算されます。

output = np.copy(data)
update_indices = indices.shape[:-1]
for idx in np.ndindex(update_indices):
    output[indices[idx]] = f(output[indices[idx]], updates[idx])

ここで、fは、指定されたように+*max、またはminです。

この演算子はGatherNDの逆です。

(Opset 18の変更):許可される削減演算のセットにmax/minを追加します。

例 1

data    = [1, 2, 3, 4, 5, 6, 7, 8]
indices = [[4], [3], [1], [7]]
updates = [9, 10, 11, 12]
output  = [1, 11, 3, 10, 9, 6, 7, 12]

例 2

data    = [[[1, 2, 3, 4], [5, 6, 7, 8], [8, 7, 6, 5], [4, 3, 2, 1]],
            [[1, 2, 3, 4], [5, 6, 7, 8], [8, 7, 6, 5], [4, 3, 2, 1]],
            [[8, 7, 6, 5], [4, 3, 2, 1], [1, 2, 3, 4], [5, 6, 7, 8]],
            [[8, 7, 6, 5], [4, 3, 2, 1], [1, 2, 3, 4], [5, 6, 7, 8]]]
indices = [[0], [2]]
updates = [[[5, 5, 5, 5], [6, 6, 6, 6], [7, 7, 7, 7], [8, 8, 8, 8]],
            [[1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3], [4, 4, 4, 4]]]
output  = [[[5, 5, 5, 5], [6, 6, 6, 6], [7, 7, 7, 7], [8, 8, 8, 8]],
            [[1, 2, 3, 4], [5, 6, 7, 8], [8, 7, 6, 5], [4, 3, 2, 1]],
            [[1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3], [4, 4, 4, 4]],
            [[8, 7, 6, 5], [4, 3, 2, 1], [1, 2, 3, 4], [5, 6, 7, 8]]]

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
reduction::mlir::StringAttr文字列属性

オペランド

オペランド 説明
data 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、bfloat16型の値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル
indices 64ビット符号なし整数値のテンソル
updates 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、bfloat16型の値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル

結果

結果 説明
出力 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、bfloat16型の値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル

onnx.Scatter (ONNXScatterOp)

ONNX Scatter演算

この演算子は非推奨です。同じ機能を提供するScatterElementsを使用してください。

Scatterは、同じランクr >= 1の3つの入力dataupdates、およびindicesと、dataの軸を識別するオプションの属性axis(デフォルトでは、最も外側の軸、つまり軸0)を受け取ります。演算の出力は、入力dataのコピーを作成し、indicesで指定された特定のインデックス位置でupdatesで指定された値に値を更新することによって生成されます。その出力形状は、dataの形状と同じです。

updatesの各エントリに対して、data内のターゲットインデックスは、indices内の対応するエントリをエントリ自体のインデックスと組み合わせることによって取得されます。次元= axisのインデックス値は、indices内の対応するエントリの値から取得され、次元!= axisのインデックス値は、エントリ自体のインデックスから取得されます。

たとえば、2次元テンソルの場合、[i][j]エントリに対応する更新は以下のように実行されます。

  output[indices[i][j]][j] = updates[i][j] if axis = 0,
  output[i][indices[i][j]] = updates[i][j] if axis = 1,

この演算子は、GatherElementsの逆です。これは、TorchのScatter演算に似ています。

例 1

  data = [
      [0.0, 0.0, 0.0],
      [0.0, 0.0, 0.0],
      [0.0, 0.0, 0.0],
  ]
  indices = [
      [1, 0, 2],
      [0, 2, 1],
  ]
  updates = [
      [1.0, 1.1, 1.2],
      [2.0, 2.1, 2.2],
  ]
  output = [
      [2.0, 1.1, 0.0]
      [1.0, 0.0, 2.2]
      [0.0, 2.1, 1.2]
  ]

例 2

  data = [[1.0, 2.0, 3.0, 4.0, 5.0]]
  indices = [[1, 3]]
  updates = [[1.1, 2.1]]
  axis = 1
  output = [[1.0, 1.1, 3.0, 2.1, 5.0]]

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
axis::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
data 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル
indices 32ビット符号なし整数値のテンソルまたは64ビット符号なし整数値のテンソル
updates 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル

結果

結果 説明
出力 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル

onnx.Selu (ONNXSeluOp)

ONNX Selu演算

Seluは1つの入力データ(Tensor)を受け取り、1つの出力データ(Tensor)を受け取り、そこでスケーリングされた指数線形ユニット関数、`x <= 0の場合、y = gamma * (alpha * e^x - alpha)`、`x > 0の場合、y = gamma * x` がテンソルに要素ごとに適用されます。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
alpha::mlir::FloatAttr32ビット浮動小数点属性
gamma::mlir::FloatAttr32ビット浮動小数点属性

オペランド

オペランド 説明
X 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

結果

結果 説明
Y 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

onnx.SequenceAt (ONNXSequenceAtOp)

ONNX SequenceAt演算

「input_sequence」の「position」にあるテンソルからテンソルのコピーを出力します。「position」に許容される範囲は、[-n, n - 1]です。ここで、nは「input_sequence」内のテンソルの数です。負の値は、後ろから位置を数えることを意味します。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
input_sequence 8ビット符号なし整数値のテンソルの SeqType 値、16ビット符号なし整数値のテンソルの SeqType 値、32ビット符号なし整数値のテンソルの SeqType 値、64ビット符号なし整数値のテンソルの SeqType 値、8ビット符号付き整数値のテンソルの SeqType 値、16ビット符号付き整数値のテンソルの SeqType 値、32ビット符号付き整数値のテンソルの SeqType 値、64ビット符号付き整数値のテンソルの SeqType 値、16ビット浮動小数点値のテンソルの SeqType 値、32ビット浮動小数点値のテンソルの SeqType 値、64ビット浮動小数点値のテンソルの SeqType 値、文字列型の値のテンソルの SeqType 値、1ビット符号なし整数値のテンソルの SeqType 値、32ビット浮動小数点要素を持つ複素数型のテンソルの SeqType 値、または64ビット浮動小数点要素を持つ複素数型のテンソルの SeqType 値
position 32ビット符号なし整数値のテンソルまたは64ビット符号なし整数値のテンソル

結果

結果 説明
tensor 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル

onnx.SequenceConstruct (ONNXSequenceConstructOp)

ONNX SequenceConstruct演算

「inputs」テンソルを含むテンソルシーケンスを構築します。「inputs」のすべてのテンソルは同じデータ型を持っている必要があります。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
入力 8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、または文字列型値のテンソル、または1ビット符号なし整数値のテンソル、または32ビット浮動小数点要素値を持つ複素数型テンソル、または64ビット浮動小数点要素値を持つ複素数型テンソル

結果

結果 説明
output_sequence 8ビット符号なし整数値のテンソルの SeqType 値、16ビット符号なし整数値のテンソルの SeqType 値、32ビット符号なし整数値のテンソルの SeqType 値、64ビット符号なし整数値のテンソルの SeqType 値、8ビット符号付き整数値のテンソルの SeqType 値、16ビット符号付き整数値のテンソルの SeqType 値、32ビット符号付き整数値のテンソルの SeqType 値、64ビット符号付き整数値のテンソルの SeqType 値、16ビット浮動小数点値のテンソルの SeqType 値、32ビット浮動小数点値のテンソルの SeqType 値、64ビット浮動小数点値のテンソルの SeqType 値、文字列型の値のテンソルの SeqType 値、1ビット符号なし整数値のテンソルの SeqType 値、32ビット浮動小数点要素を持つ複素数型のテンソルの SeqType 値、または64ビット浮動小数点要素を持つ複素数型のテンソルの SeqType 値

onnx.SequenceEmpty (ONNXSequenceEmptyOp)

ONNX SequenceEmpty演算

指定されたデータ型を持つ空のテンソルシーケンスを構築します。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
dtype::mlir::IntegerAttr64ビット符号付き整数属性

結果

結果 説明
出力 8ビット符号なし整数値のテンソルの SeqType 値、16ビット符号なし整数値のテンソルの SeqType 値、32ビット符号なし整数値のテンソルの SeqType 値、64ビット符号なし整数値のテンソルの SeqType 値、8ビット符号付き整数値のテンソルの SeqType 値、16ビット符号付き整数値のテンソルの SeqType 値、32ビット符号付き整数値のテンソルの SeqType 値、64ビット符号付き整数値のテンソルの SeqType 値、16ビット浮動小数点値のテンソルの SeqType 値、32ビット浮動小数点値のテンソルの SeqType 値、64ビット浮動小数点値のテンソルの SeqType 値、文字列型の値のテンソルの SeqType 値、1ビット符号なし整数値のテンソルの SeqType 値、32ビット浮動小数点要素を持つ複素数型のテンソルの SeqType 値、または64ビット浮動小数点要素を持つ複素数型のテンソルの SeqType 値

onnx.SequenceErase (ONNXSequenceEraseOp)

ONNX SequenceErase演算

「input_sequence」から「position」にあるテンソルを削除するテンソルシーケンスを出力します。「position」に許容される範囲は、[-n, n - 1]です。ここで、nは「input_sequence」内のテンソルの数です。負の値は、後ろから位置を数えることを意味します。「position」はオプションであり、デフォルトでは「input_sequence」から最後のテンソルを削除します。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
input_sequence 8ビット符号なし整数値のテンソルの SeqType 値、16ビット符号なし整数値のテンソルの SeqType 値、32ビット符号なし整数値のテンソルの SeqType 値、64ビット符号なし整数値のテンソルの SeqType 値、8ビット符号付き整数値のテンソルの SeqType 値、16ビット符号付き整数値のテンソルの SeqType 値、32ビット符号付き整数値のテンソルの SeqType 値、64ビット符号付き整数値のテンソルの SeqType 値、16ビット浮動小数点値のテンソルの SeqType 値、32ビット浮動小数点値のテンソルの SeqType 値、64ビット浮動小数点値のテンソルの SeqType 値、文字列型の値のテンソルの SeqType 値、1ビット符号なし整数値のテンソルの SeqType 値、32ビット浮動小数点要素を持つ複素数型のテンソルの SeqType 値、または64ビット浮動小数点要素を持つ複素数型のテンソルの SeqType 値
position 32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、または none 型

結果

結果 説明
output_sequence 8ビット符号なし整数値のテンソルの SeqType 値、16ビット符号なし整数値のテンソルの SeqType 値、32ビット符号なし整数値のテンソルの SeqType 値、64ビット符号なし整数値のテンソルの SeqType 値、8ビット符号付き整数値のテンソルの SeqType 値、16ビット符号付き整数値のテンソルの SeqType 値、32ビット符号付き整数値のテンソルの SeqType 値、64ビット符号付き整数値のテンソルの SeqType 値、16ビット浮動小数点値のテンソルの SeqType 値、32ビット浮動小数点値のテンソルの SeqType 値、64ビット浮動小数点値のテンソルの SeqType 値、文字列型の値のテンソルの SeqType 値、1ビット符号なし整数値のテンソルの SeqType 値、32ビット浮動小数点要素を持つ複素数型のテンソルの SeqType 値、または64ビット浮動小数点要素を持つ複素数型のテンソルの SeqType 値

onnx.SequenceInsert (ONNXSequenceInsertOp)

ONNX SequenceInsert演算

「input_sequence」の「position」に「tensor」を挿入するテンソルシーケンスを出力します。「tensor」は「input_sequence」と同じデータ型を持っている必要があります。「position」に許容される範囲は、[-n, n]です。ここで、nは「input_sequence」内のテンソルの数です。負の値は、後ろから位置を数えることを意味します。「position」はオプションであり、デフォルトでは「input_sequence」の後ろに「tensor」を挿入します。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
input_sequence 8ビット符号なし整数値のテンソルの SeqType 値、16ビット符号なし整数値のテンソルの SeqType 値、32ビット符号なし整数値のテンソルの SeqType 値、64ビット符号なし整数値のテンソルの SeqType 値、8ビット符号付き整数値のテンソルの SeqType 値、16ビット符号付き整数値のテンソルの SeqType 値、32ビット符号付き整数値のテンソルの SeqType 値、64ビット符号付き整数値のテンソルの SeqType 値、16ビット浮動小数点値のテンソルの SeqType 値、32ビット浮動小数点値のテンソルの SeqType 値、64ビット浮動小数点値のテンソルの SeqType 値、文字列型の値のテンソルの SeqType 値、1ビット符号なし整数値のテンソルの SeqType 値、32ビット浮動小数点要素を持つ複素数型のテンソルの SeqType 値、または64ビット浮動小数点要素を持つ複素数型のテンソルの SeqType 値
tensor 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル
position 32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、または none 型

結果

結果 説明
output_sequence 8ビット符号なし整数値のテンソルの SeqType 値、16ビット符号なし整数値のテンソルの SeqType 値、32ビット符号なし整数値のテンソルの SeqType 値、64ビット符号なし整数値のテンソルの SeqType 値、8ビット符号付き整数値のテンソルの SeqType 値、16ビット符号付き整数値のテンソルの SeqType 値、32ビット符号付き整数値のテンソルの SeqType 値、64ビット符号付き整数値のテンソルの SeqType 値、16ビット浮動小数点値のテンソルの SeqType 値、32ビット浮動小数点値のテンソルの SeqType 値、64ビット浮動小数点値のテンソルの SeqType 値、文字列型の値のテンソルの SeqType 値、1ビット符号なし整数値のテンソルの SeqType 値、32ビット浮動小数点要素を持つ複素数型のテンソルの SeqType 値、または64ビット浮動小数点要素を持つ複素数型のテンソルの SeqType 値

onnx.SequenceLength (ONNXSequenceLengthOp)

ONNX SequenceLength演算

「input_sequence」内のテンソルの数を含むスカラー(空の形状のテンソル)を生成します。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
input_sequence 8ビット符号なし整数値のテンソルの SeqType 値、16ビット符号なし整数値のテンソルの SeqType 値、32ビット符号なし整数値のテンソルの SeqType 値、64ビット符号なし整数値のテンソルの SeqType 値、8ビット符号付き整数値のテンソルの SeqType 値、16ビット符号付き整数値のテンソルの SeqType 値、32ビット符号付き整数値のテンソルの SeqType 値、64ビット符号付き整数値のテンソルの SeqType 値、16ビット浮動小数点値のテンソルの SeqType 値、32ビット浮動小数点値のテンソルの SeqType 値、64ビット浮動小数点値のテンソルの SeqType 値、文字列型の値のテンソルの SeqType 値、1ビット符号なし整数値のテンソルの SeqType 値、32ビット浮動小数点要素を持つ複素数型のテンソルの SeqType 値、または64ビット浮動小数点要素を持つ複素数型のテンソルの SeqType 値

結果

結果 説明
length 64ビット符号なし整数値のテンソル

onnx.SequenceMap (ONNXSequenceMapOp)

ONNX SequenceMap演算

入力シーケンス内の各サンプルにサブグラフを適用します。

入力はテンソルまたはシーケンスのいずれかですが、最初の入力はシーケンスである必要があります。最初の入力シーケンスの長さによって、出力内のサンプル数が決定されます。その他のシーケンス入力は、同じサンプル数である必要があります。入力と出力の数は、サブグラフのものと一致する必要があります。

出力内の各i番目の要素について、入力シーケンスからi番目の位置にあるサンプルが抽出され、サブグラフが適用されます。出力には、入力と同じ順序で、各サンプルのサブグラフの出力が含まれます。

この演算子は、各サンプルの処理が独立しており、並行して、または任意の順序で実行できることを前提としています。ユーザーは、各サブグラフが計算される特定の順序を期待することはできません。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatableHasOnnxSubgraphOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
input_sequence 8ビット符号なし整数値のテンソルの SeqType 値、16ビット符号なし整数値のテンソルの SeqType 値、32ビット符号なし整数値のテンソルの SeqType 値、64ビット符号なし整数値のテンソルの SeqType 値、8ビット符号付き整数値のテンソルの SeqType 値、16ビット符号付き整数値のテンソルの SeqType 値、32ビット符号付き整数値のテンソルの SeqType 値、64ビット符号付き整数値のテンソルの SeqType 値、16ビット浮動小数点値のテンソルの SeqType 値、32ビット浮動小数点値のテンソルの SeqType 値、64ビット浮動小数点値のテンソルの SeqType 値、文字列型の値のテンソルの SeqType 値、1ビット符号なし整数値のテンソルの SeqType 値、32ビット浮動小数点要素を持つ複素数型のテンソルの SeqType 値、または64ビット浮動小数点要素を持つ複素数型のテンソルの SeqType 値
additional_inputs 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素値の複素数型テンソル、64ビット浮動小数点要素値の複素数型テンソル、8ビット符号なし整数値のテンソルのSeqType値、16ビット符号なし整数値のテンソルのSeqType値、32ビット符号なし整数値のテンソルのSeqType値、64ビット符号なし整数値のテンソルのSeqType値、8ビット符号なし整数値のテンソルのSeqType値、16ビット符号なし整数値のテンソルのSeqType値、32ビット符号なし整数値のテンソルのSeqType値、64ビット符号なし整数値のテンソルのSeqType値、16ビット浮動小数点値のテンソルのSeqType値、32ビット浮動小数点値のテンソルのSeqType値、64ビット浮動小数点値のテンソルのSeqType値、文字列型値のテンソルのSeqType値、1ビット符号なし整数値のテンソルのSeqType値、32ビット浮動小数点要素値の複素数型テンソルのSeqType値、64ビット浮動小数点要素値の複素数型テンソルのSeqType値の可変長引数

結果

結果 説明
out_sequence 8ビット符号なし整数値のテンソルのSeqType値、16ビット符号なし整数値のテンソルのSeqType値、32ビット符号なし整数値のテンソルのSeqType値、64ビット符号なし整数値のテンソルのSeqType値、8ビット符号なし整数値のテンソルのSeqType値、16ビット符号なし整数値のテンソルのSeqType値、32ビット符号なし整数値のテンソルのSeqType値、64ビット符号なし整数値のテンソルのSeqType値、16ビット浮動小数点値のテンソルのSeqType値、32ビット浮動小数点値のテンソルのSeqType値、64ビット浮動小数点値のテンソルのSeqType値、文字列型値のテンソルのSeqType値、1ビット符号なし整数値のテンソルのSeqType値、32ビット浮動小数点要素値の複素数型テンソルのSeqType値、64ビット浮動小数点要素値の複素数型テンソルのSeqType値の可変長引数

onnx.Shape (ONNXShapeOp)

ONNX Shape演算

テンソルを入力として受け取り、入力テンソルの形状を含む1D int64テンソルを出力します。オプションの属性startとendを使用して、入力テンソルの形状のスライスを計算できます。開始軸が省略された場合、スライスは軸0から開始されます。終了軸が指定されている場合、排他的です(そして、返される値にはその軸のサイズは含まれません)。終了軸が省略されている場合は、最後の軸までの軸が含まれます。負の軸は、最後の軸から数えて戻ることを示します。軸は、範囲外の場合(負の軸の場合、rを追加した後)、範囲[0, r-1]にクランプされることに注意してください。ここで、rは入力テンソルのランクです。したがって、rより大きい任意の終了値を指定することは、終了値rを指定することと同等であり、-rより小さい任意の開始値を指定することは、開始値0を指定することと同等です。

Input tensor with shape: [2, 3, 4]
No attributes specified.
Output: [2, 3, 4]
Input tensor with shape: [2, 3, 4]
start: -1
Output: [4]
Input tensor with shape: [2, 3, 4]
end: -1
Output: [2, 3]
Input tensor with shape: [2, 3, 4]
start: 1
end: 2
Output: [3]

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
end::mlir::IntegerAttr64ビット符号付き整数属性
start::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
data 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、bfloat16型値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型値のテンソル、64ビット浮動小数点要素を持つ複素数型値のテンソル、f8E4M3FN型値のテンソル、f8E4M3FNUZ型値のテンソル、f8E5M2型値のテンソル、f8E5M2FNUZ型値のテンソル

結果

結果 説明
shape 64ビット符号なし整数値のテンソル

onnx.ShapeTransform (ONNXShapeTransformOp)

ONNX 要素ごとの形状変換演算

この演算子は、アフィンマップによって形状が変更された別のテンソルにテンソルを変換します。これは要素ごとの変換であるため、入力の各要素はアフィンマップを介して出力の要素にコピーされます。アフィンマップは全単射である必要があります。

たとえば、次のコードは、onnx.ShapeTransformを使用して、テンソルを2Dから4Dにリシェイプしています。

#reshape = affine_map(d0, d1) -> (d0/32, d0%32, d1/64, d1%64)
%Y = onnx.ShapeTransform(%arg0) {index_map = #reshape} :  (tensor<128x128xf32>) -> tensor<4x32x2x64xf32>

onnx.ShapeTransformは、krnl方言への低レベル化を介して、最終的にaffine.forに具体化されます。例:

%alloc = memref.alloc() {alignment = 16 : i64} : memref<4x32x2x64xf32>
affine.for %arg1 = 0 to 128 {
  affine.for %arg2 = 0 to 128 {
    %0 = affine.load %arg0[%arg1, %arg2] : memref< 128x128xf32 >
    affine.store %0, %alloc[%arg1 / 32, %arg1 % 32, %arg2 / 64, %arg2 % 64] : memref<4x32x2x64xf32>
  }
}

正規化されると、ShapeTransform演算は、それらのアフィンマップを構成することによって、新しいShapeTransform演算に構成されます。

現時点では、この操作は静的次元のみをサポートしています。

この操作は標準の一部ではなく、onnx-mlir を支援するために追加されました。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
index_map::mlir::AffineMapAttrAffineMap属性

オペランド

オペランド 説明
入力 32ビット浮動小数点値のテンソル

結果

結果 説明
出力 32ビット浮動小数点値のテンソル

onnx.Shrink (ONNXShrinkOp)

ONNX Shrink演算

Shrinkは1つの入力データ(Tensor)を受け取り、入力と同じデータ型と形状を持つ1つのテンソル出力を生成します。これには、lambdとbiasの2つの属性があります。この演算子の式は次のとおりです。x < -lambdの場合、y = x + bias。x > lambdの場合、y = x - bias。それ以外の場合、y = 0。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
bias::mlir::FloatAttr32ビット浮動小数点属性
lambd::mlir::FloatAttr32ビット浮動小数点属性

オペランド

オペランド 説明
入力 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

結果

結果 説明
出力 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

onnx.Sigmoid (ONNXSigmoidOp)

ONNX Sigmoid演算

Sigmoidは1つの入力データ(Tensor)を受け取り、1つの出力データ(Tensor)を受け取り、そこでシグモイド関数、y = 1 / (1 + exp(-x))がテンソルに要素ごとに適用されます。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
X 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型の値のテンソル

結果

結果 説明
Y 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型の値のテンソル

onnx.Sign (ONNXSignOp)

ONNX Sign演算

与えられた入力テンソルの符号を要素ごとに計算します。入力 > 0の場合、出力は1です。入力 < 0の場合、出力は-1です。入力 == 0の場合、出力は0です。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
入力 8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型値のテンソル

結果

結果 説明
出力 8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型値のテンソル

onnx.Sin (ONNXSinOp)

ONNX Sin演算

与えられた入力テンソルの正弦を要素ごとに計算します。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
入力 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

結果

結果 説明
出力 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

onnx.Sinh (ONNXSinhOp)

ONNX Sinh演算

与えられた入力テンソルの双曲線正弦を要素ごとに計算します。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
入力 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

結果

結果 説明
出力 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

onnx.Size (ONNXSizeOp)

ONNX Size演算

テンソルを入力として受け取り、入力テンソルの要素の総数に等しいint64スカラーを出力します。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
data 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、bfloat16型値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型値のテンソル、64ビット浮動小数点要素を持つ複素数型値のテンソル、f8E4M3FN型値のテンソル、f8E4M3FNUZ型値のテンソル、f8E5M2型値のテンソル、f8E5M2FNUZ型値のテンソル

結果

結果 説明
size 64ビット符号なし整数値のテンソル

onnx.Slice (ONNXSliceOp)

ONNX Slice演算

複数の軸に沿って入力テンソルのスライスを生成します。numpyと同様: https://numpy.org/doc/stable/user/basics.indexing.html?highlight=slice#slicing-and-striding

Sliceは、startsendsaxes、およびsteps入力を使用して、入力dataテンソルのサブテンソルを選択します。

有効なstarts[i]ends[i]、およびsteps[i]は、次のようにiの各々について[0, ... r-1]で計算する必要があります。ここで、r = rank(input)です。

もしaxesが省略された場合、[0, ..., r-1]に設定されます。もしstepsが省略された場合、len(starts)の長さの[1, ..., 1]に設定されます。

有効な値は、start[i] = 0ends[i] = dims[i]として初期化されます。ここで、dimsinputの次元であり、steps[i] = 1です。

axesのすべての負の要素は、rを加えることで非負にされます。ここで、r = rank(input)です。

starts[i]ends[i]のすべての負の値には、dims[axes[i]]が加えられます。ここで、dimsinputの次元です。その後、start[axes[i]]は調整されたstarts[i]であり、正のステップの場合は[0, dims[axes[i]]]の範囲に、負のステップの場合は[0, dims[axes[i]]-1]の範囲にクランプされます。

調整されたends[i]のクランプは、steps[i]の符号に依存し、0からdims[axes[i]]個の要素をコピーできるようにする必要があります。したがって、正のステップの場合、ends[axes[i]][0, dims[axes[i]]]にクランプされ、負のステップの場合、[-1, dims[axes[i]]-1]にクランプされます。

最後に、steps[axes[i]] = steps[i]となります。

サイズが不明な次元の終端までスライスするには、前方にスライスする場合はINT_MAX、後方にスライスする場合は「INT_MIN」を渡すことをお勧めします。

例 1

data = [
    [1, 2, 3, 4],
    [5, 6, 7, 8],
]
axes = [0, 1]
starts = [1, 0]
ends = [2, 3]
steps = [1, 2]
result = [
    [5, 7],
]

例 2

data = [
    [1, 2, 3, 4],
    [5, 6, 7, 8],
]
starts = [0, 1]
ends = [-1, 1000]
result = [
    [2, 3, 4],
]

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
data 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、bfloat16型の値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル
starts 32ビット符号なし整数値のテンソルまたは64ビット符号なし整数値のテンソル
ends 32ビット符号なし整数値のテンソルまたは64ビット符号なし整数値のテンソル
axes 32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、または none 型
steps 32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、または none 型

結果

結果 説明
出力 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、bfloat16型の値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル

onnx.SoftmaxCrossEntropyLoss (ONNXSoftmaxCrossEntropyLossOp)

ONNX SoftmaxCrossEntropyLoss演算

「scores」と「labels」間のソフトマックス交差エントロピーを測定する損失関数。この演算子は、まず、ラベル入力と同じ形状の損失テンソルを計算します。入力が(N、C)の形状の2次元の場合、損失テンソルはN要素のベクトルL =(l_1、l_2、…、l_N)になります。入力が(N、C、D1、D2、…、Dk)の形状のN次元テンソルの場合、損失テンソルLは(N、D1、D2、…、Dk)を形状として持ち、L[i,][j_1][j_2]…[j_k]はLのスカラー要素を示します。Lが利用可能になった後、この演算子はオプションで削減演算を実行できます。

1つのサンプル、l_iの損失は、次のように計算できます。

l[i][d1][d2]...[dk] = -y[i][c][d1][d2]..[dk], where i is the index of classes.

または

l[i][d1][d2]...[dk] = -y[i][c][d1][d2]..[dk] * weights[c], if 'weights' is provided.

ラベル値がignore_indexと等しい場合、損失はゼロです。

l[i][d1][d2]...[dk]  = 0, when labels[n][d1][d2]...[dk] = ignore_index

ここで

p = Softmax(scores)
y = Log(p)
c = labels[i][d1][d2]...[dk]

最後に、Lはオプションで削減されます。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
ignore_index::mlir::IntegerAttr64ビット符号付き整数属性
reduction::mlir::StringAttr文字列属性

オペランド

オペランド 説明
scores 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型の値のテンソル
labels 32ビット符号なし整数値のテンソルまたは64ビット符号なし整数値のテンソル
weights 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型の値のテンソル、またはNone型

結果

結果 説明
出力 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型の値のテンソル
log_prob 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型の値のテンソル、またはNone型

onnx.Softmax (ONNXSoftmaxOp)

ONNX Softmax演算

演算子は、与えられた入力の正規化された指数値を計算します。

Softmax(input, axis) = Exp(input) / ReduceSum(Exp(input), axis=axis, keepdims=1)

「axis」属性は、Softmaxが実行される次元を示します。出力テンソルは同じ形状を持ち、対応する入力のSoftmax値を含みます。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
axis::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
入力 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型の値のテンソル

結果

結果 説明
出力 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型の値のテンソル

onnx.SoftmaxV11 (ONNXSoftmaxV11Op)

ONNX Softmax演算

演算子は、与えられた入力のバッチ内の各レイヤーのソフトマックス(正規化された指数)値を計算します。

入力は明示的に2Dベクトルである必要はなく、むしろ1つのベクトルに強制変換されます。任意のn次元テンソル入力\in [a_0, a_1, …, a_{k-1}, a_k, …, a_{n-1}]があり、kが指定された軸である場合、入力は[a_0 * … * a_{k-1}, a_k * … * a_{n-1}]の次元を持つ2次元テンソルに強制変換されます。axis=1のデフォルトの場合、これは入力テンソルが[a_0, a_1 * … * a_{n-1}]の次元の2Dテンソルに強制変換されることを意味します。ここで、a_0は多くの場合バッチサイズです。この状況では、a_0 = Nかつa_1 * … * a_{n-1} = Dである必要があります。これらの次元のそれぞれが正しく一致している必要があります。そうでない場合、演算子はエラーをスローします。出力テンソルは同じ形状を持ち、対応する入力のソフトマックス値を含みます。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
axis::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
入力 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

結果

結果 説明
出力 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

onnx.Softplus (ONNXSoftplusOp)

ONNX Softplus演算

Softplusは、1つの入力データ(Tensor)を受け取り、1つの出力データ(Tensor)を受け取ります。ここで、ソフトプラス関数y = ln(exp(x) + 1)が、テンソル要素ごとに適用されます。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
X 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

結果

結果 説明
Y 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

onnx.Softsign (ONNXSoftsignOp)

ONNX Softsign演算

与えられた入力テンソルのソフトサイン(x/(1+ x ))を要素ごとに計算します。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
入力 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

結果

結果 説明
出力 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

onnx.SpaceToDepth (ONNXSpaceToDepthOp)

ONNX SpaceToDepth演算

SpaceToDepthは、空間データのブロックを深度に再配置します。より具体的には、このopは、高さと幅の次元の値が深度の次元に移動される入力テンソルのコピーを出力します。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
blocksize::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
入力 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、bfloat16型の値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル

結果

結果 説明
出力 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、bfloat16型の値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル

onnx.Split (ONNXSplitOp)

ONNX Split演算

指定された「軸」に沿って、テンソルをテンソルのリストに分割します。入力「split」または属性「num_outputs」のいずれかを指定する必要がありますが、両方を指定することはできません。属性「num_outputs」が指定されている場合、テンソルは同じサイズの部分に分割されます。テンソルがnum_outputsに均等に分割できない場合、最後のチャンクは小さくなります。入力「split」が指定されている場合、それは分割された各出力のサイズを示します。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
axis::mlir::IntegerAttr64ビット符号付き整数属性
num_outputs::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
入力 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、bfloat16型の値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル
split 64ビット符号なし整数値のテンソルまたは none 型

結果

結果 説明
出力 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、bfloat16型の値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソルの可変個引数

onnx.SplitToSequence (ONNXSplitToSequenceOp)

ONNX SplitToSequence演算

指定された「軸」に沿って、テンソルをテンソルのシーケンスに分割します。部分の長さは、オプションの引数「split」を使用して指定できます。引数split' が指定されていない場合、split'の値としてデフォルトのスカラー値1が使用されます。「split」には正の数のみを含める必要があります。「split」は、スカラー(空の形状のテンソル)または1次元テンソルのいずれかです。「split」がスカラーの場合、「input」は可能な限りすべてサイズ「split」のチャンクに分割されます。指定された軸「axis」に沿った「input」サイズが「split」で割り切れない場合、最後のチャンクのみが「split」よりも小さくなる可能性があります。「split」が1次元テンソルの場合、入力テンソルは「split」で指定された「軸」上の部分の長さを持つ「size(split)」チャンクに分割されます。このシナリオでは、「split」のエントリの合計が「軸」上の入力テンソルの次元サイズと等しくなる必要があります。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
axis::mlir::IntegerAttr64ビット符号付き整数属性
keepdims::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
入力 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル
split 32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、または none 型

結果

結果 説明
output_sequence 8ビット符号なし整数値のテンソルの SeqType 値、16ビット符号なし整数値のテンソルの SeqType 値、32ビット符号なし整数値のテンソルの SeqType 値、64ビット符号なし整数値のテンソルの SeqType 値、8ビット符号付き整数値のテンソルの SeqType 値、16ビット符号付き整数値のテンソルの SeqType 値、32ビット符号付き整数値のテンソルの SeqType 値、64ビット符号付き整数値のテンソルの SeqType 値、16ビット浮動小数点値のテンソルの SeqType 値、32ビット浮動小数点値のテンソルの SeqType 値、64ビット浮動小数点値のテンソルの SeqType 値、文字列型の値のテンソルの SeqType 値、1ビット符号なし整数値のテンソルの SeqType 値、32ビット浮動小数点要素を持つ複素数型のテンソルの SeqType 値、または64ビット浮動小数点要素を持つ複素数型のテンソルの SeqType 値

onnx.SplitV11 (ONNXSplitV11Op)

ONNX Split演算

指定された「軸」に沿って、テンソルをテンソルのリストに分割します。部分の長さは、引数「split」を使用して指定できます。それ以外の場合、テンソルは同じサイズの部分に分割されます。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
axis::mlir::IntegerAttr64ビット符号付き整数属性
split::mlir::ArrayAttr64ビット整数配列属性

オペランド

オペランド 説明
入力 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル

結果

結果 説明
出力 8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、または文字列型値のテンソル、または1ビット符号なし整数値のテンソル、または32ビット浮動小数点要素値を持つ複素数型テンソル、または64ビット浮動小数点要素値を持つ複素数型テンソル

onnx.SplitV13 (ONNXSplitV13Op)

ONNX Split演算

指定された「軸」に沿って、テンソルをテンソルのリストに分割します。部分の長さは、入力「split」を使用して指定できます。それ以外の場合、テンソルは同じサイズの部分に分割されます。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
axis::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
入力 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、bfloat16型の値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル
split 64ビット符号なし整数値のテンソルまたは none 型

結果

結果 説明
出力 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、bfloat16型の値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソルの可変個引数

onnx.Sqrt (ONNXSqrtOp)

ONNX Sqrt演算

平方根は1つの入力データ(Tensor)を受け取り、1つの出力データ(Tensor)を受け取ります。ここで、平方根y = x^0.5がテンソル要素ごとに適用されます。xが負の場合、NaNが返されます。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
X 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型の値のテンソル

結果

結果 説明
Y 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型の値のテンソル

onnx.Squeeze (ONNXSqueezeOp)

ONNX Squeeze演算

テンソルの形状から単一次元のエントリを削除します。圧縮する軸のリストを含む入力axesを受け取ります。axesが指定されていない場合、すべての単一次元が形状から削除されます。形状エントリが1に等しくない軸が選択されている場合、エラーが発生します。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
data 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、bfloat16型の値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル
axes 64ビット符号なし整数値のテンソルまたは none 型

結果

結果 説明
squeezed 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、bfloat16型の値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル

onnx.SqueezeV11 (ONNXSqueezeV11Op)

ONNX Squeeze演算

テンソルの形状から単一次元のエントリを削除します。圧縮する軸のリストを含むパラメーターaxesを受け取ります。axesが指定されていない場合、すべての単一次元が形状から削除されます。形状エントリが1に等しくない軸が選択されている場合、エラーが発生します。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
axes::mlir::ArrayAttr64ビット整数配列属性

オペランド

オペランド 説明
data 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル

結果

結果 説明
squeezed 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル

onnx.StringNormalizer (ONNXStringNormalizerOp)

ONNX StringNormalizer演算

StringNormalizationは、基本的なクリーニングのために文字列操作を実行します。この演算子は、入力(Xで示されます)を1つだけ持ち、出力(Yで示されます)を1つだけ持ちます。この演算子は、最初にXの要素を調べ、「stopwords」属性で指定された要素を削除します。ストップワードを削除した後、中間結果は、「case_change_action」属性に応じて、さらに小文字化、大文字化、またはそのまま返されます。この演算子は、[C]-および[1, C]-テンソルのみを受け入れます。Xのすべての要素が削除された場合、入力形状が[C]の場合は形状[1]、入力形状が[1, C]の場合は形状[1, 1]の文字列テンソルの空の値が出力されます。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
case_change_action::mlir::StringAttr文字列属性
is_case_sensitive::mlir::IntegerAttr64ビット符号付き整数属性
locale::mlir::StringAttr文字列属性
stopwords::mlir::ArrayAttr文字列配列属性

オペランド

オペランド 説明
X 文字列型の値のテンソル

結果

結果 説明
Y 文字列型の値のテンソル

onnx.Sub (ONNXSubOp)

ONNX Sub演算

要素ごとのバイナリ減算(Numpyスタイルのブロードキャストサポート付き)を実行します。

この演算子は、多方向(つまり、NumPyスタイル)のブロードキャストをサポートしています。詳細については、ドキュメントを参照してください。

(Opset 14 の変更):uint8、int8、uint16、および int16 を含むようにサポートされる型を拡張しました。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
A 8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型値のテンソル
B 8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型値のテンソル

結果

結果 説明
C 8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または8ビット符号なし整数値のテンソル、または16ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル、または64ビット符号なし整数値のテンソル、または16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型値のテンソル

onnx.Sum (ONNXSumOp)

ONNX Sum 演算

入力テンソルそれぞれの要素ごとの和を計算します(NumPyスタイルのブロードキャストをサポート)。すべての入力と出力は同じデータ型である必要があります。この演算子は多方向(つまり、NumPyスタイル)ブロードキャストをサポートしています。詳細については、ドキュメントを参照してください。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
data_0 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型の値のテンソルの可変長引数

結果

結果 説明
sum 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、またはbfloat16型の値のテンソル

onnx.Tan (ONNXTanOp)

ONNX Tan 演算

与えられた入力テンソルの正接を要素ごとに計算します。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
入力 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

結果

結果 説明
出力 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

onnx.Tanh (ONNXTanhOp)

ONNX Tanh 演算

与えられた入力テンソルの双曲線正接を要素ごとに計算します。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
入力 bfloat16 型値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

結果

結果 説明
出力 bfloat16 型値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

onnx.TfIdfVectorizer (ONNXTfIdfVectorizerOp)

ONNX TfIdfVectorizer 演算

この変換は、入力シーケンスから n-グラムを抽出し、ベクトルとして保存します。入力は 1 次元または 2 次元テンソルのいずれかです。1 次元入力の場合、出力はその入力の n-グラム表現です。2 次元入力の場合、出力も 2 次元テンソルで、その i 番目の行は i 番目の入力行の n-グラム表現です。具体的には、入力形状が [C] の場合、対応する出力形状は [max(ngram_indexes) + 1] になります。入力形状が [N, C] の場合、この演算子は [N, max(ngram_indexes) + 1] のテンソルを生成します。

標準の n-グラム抽出とは対照的に、ここでは、元のシーケンスから n-グラムを抽出するインデックスは、必ずしも連続した数値である必要はありません。インデックス間の不連続性は、スキップ数によって制御されます。スキップ数が 2 の場合、元のシーケンスをスキャンするときに 2 つのトークンをスキップする必要があります。例を考えてみましょう。入力シーケンスが [94, 17, 36, 12, 28] で、スキップ数が 2 であると仮定します。関連する 2-グラムは、それぞれ [0, 3] および [1, 4] によってインデックス付けされた [94, 12] および [17, 28] です。スキップ数が 0 になると、生成される 2-グラムは、それぞれ [0, 1]、[1, 2]、[2, 3]、[3, 4] でインデックス付けされた [94, 17]、[17, 36]、[36, 12]、[12, 28] です。

出力ベクトル(Y で示します)は、各 n-グラムのカウントを格納します。Y[ngram_indexes[i]] は、i 番目の n-グラムが見つかった回数を示します。属性 ngram_indexes は、インデックス i と対応する n-グラムの出力座標との間のマッピングを決定するために使用されます。pool_int64s が [94, 17, 17, 36]、ngram_indexes が [1, 0]、ngram_counts=[0, 0] の場合、Y[0](Y の最初の要素)と Y[1](Y の 2 番目の要素)は、それぞれ [17, 36] と [94, 17] のカウントです。pool_strings/pool_int64s に見つからない n-グラムは無視され、出力に影響を与えません。n-グラムを生成するときに、S までのすべてのスキップを考慮する場合があることに注意してください。

上記の例は、モードが「TF」の場合に当てはまります。モードが「IDF」の場合、1 より大きいすべてのカウントは 1 に切り捨てられ、重みの i 番目の要素は、プール内の i 番目の n-グラムのカウントを(乗算によって)スケールするために使用されます。モードが「TFIDF」の場合、この演算子は最初にすべての n-グラムのカウントを計算し、次に重み属性の関連値でそれらをスケールします。

pool_strings と pool_int64s のいずれか一方のみを設定できます。pool_int64s が設定されている場合、入力は整数テンソルである必要があります。pool_strings が設定されている場合、入力は文字列テンソルである必要があります。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
max_gram_length::mlir::IntegerAttr64ビット符号付き整数属性
max_skip_count::mlir::IntegerAttr64ビット符号付き整数属性
min_gram_length::mlir::IntegerAttr64ビット符号付き整数属性
mode::mlir::StringAttr文字列属性
ngram_counts::mlir::ArrayAttr64ビット整数配列属性
ngram_indexes::mlir::ArrayAttr64ビット整数配列属性
pool_int64s::mlir::ArrayAttr64ビット整数配列属性
pool_strings::mlir::ArrayAttr文字列配列属性
weights::mlir::ArrayAttr32ビット浮動小数点配列属性

オペランド

オペランド 説明
X 文字列型の値のテンソル、または 32 ビット符号なし整数値のテンソル、または 64 ビット符号なし整数値のテンソル

結果

結果 説明
Y 32ビット浮動小数点値のテンソル

onnx.ThresholdedRelu (ONNXThresholdedReluOp)

ONNX ThresholdedRelu 演算

ThresholdedRelu は、1 つの入力データ (Tensor))を受け取り、1つの出力データ(Tensorを受け取り、そこでは、整流線形関数 y = x (x > alpha の場合)、y = 0 (それ以外の場合) がテンソルの要素ごとに適用されます。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
alpha::mlir::FloatAttr32ビット浮動小数点属性

オペランド

オペランド 説明
X 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

結果

結果 説明
Y 16ビット浮動小数点値のテンソル、または32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル

onnx.Tile (ONNXTileOp)

ONNX Tile 演算

与えられたテンソルをタイル状に並べてテンソルを作成します。これは NumPy の関数 tile と同じですが、ブロードキャストはありません。たとえば、A = [[1, 2], [3, 4]]、B = [1, 2] の場合、tile(A, B) = [[1, 2, 1, 2], [3, 4, 3, 4]] となります。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
入力 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、bfloat16型の値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル
repeats 64ビット符号なし整数値のテンソル

結果

結果 説明
出力 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、bfloat16型の値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル

onnx.TopK (ONNXTopKOp)

ONNX TopK 演算

指定された軸に沿って、上位 K 個の最大または最小要素を取得します。[a_0, a_1, …, a_{n-1}] の形状の入力テンソルと整数引数 k が与えられると、2 つの出力が返されます。

2 つの同等の値が与えられた場合、この演算子は軸に沿ったインデックスをタイブレーカーとして使用します。つまり、インデックスが低い要素が最初に表示されます。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
axis::mlir::IntegerAttr64ビット符号付き整数属性
largest::mlir::IntegerAttr64ビット符号付き整数属性
sorted::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
X 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル
K 64ビット符号なし整数値のテンソル

結果

結果 説明
Values 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル
Indices 64ビット符号なし整数値のテンソル

onnx.Transpose (ONNXTransposeOp)

ONNX Transpose 演算

入力テンソルを numpy.transpose と同様に転置します。たとえば、perm=(1, 0, 2) の場合、形状 (1, 2, 3) の入力テンソルが与えられると、出力形状は (2, 1, 3) になります。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
perm::mlir::ArrayAttr64ビット整数配列属性

オペランド

オペランド 説明
data 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、bfloat16型の値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル

結果

結果 説明
transposed 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、bfloat16型の値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル

onnx.TreeEnsembleClassifier (ONNXTreeEnsembleClassifierOp)

ONNX TreeEnsembleClassifier 演算

ツリーアンサンブル分類器。N 個の入力それぞれの上位クラスを返します。
「nodes_X」という名前の属性は、シーケンスへのインデックスによって関連付けられたタプルのシーケンスを形成し、それらはすべて同じ長さである必要があります。これらのタプルはノードを定義します。
同様に、「class_」で始まるすべてのフィールドは、リーフでの投票のタプルです。リーフには複数の投票がある場合があり、各投票は関連する class_weights インデックスによって重み付けされます。
classlabels_strings または classlabels_int64s のいずれか 1 つのみが定義されます。class_ids はこのリストへのインデックスです。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
base_values::mlir::ArrayAttr32ビット浮動小数点配列属性
class_ids::mlir::ArrayAttr64ビット整数配列属性
class_nodeids::mlir::ArrayAttr64ビット整数配列属性
class_treeids::mlir::ArrayAttr64ビット整数配列属性
class_weights::mlir::ArrayAttr32ビット浮動小数点配列属性
classlabels_int64s::mlir::ArrayAttr64ビット整数配列属性
classlabels_strings::mlir::ArrayAttr文字列配列属性
nodes_falsenodeids::mlir::ArrayAttr64ビット整数配列属性
nodes_featureids::mlir::ArrayAttr64ビット整数配列属性
nodes_hitrates::mlir::ArrayAttr32ビット浮動小数点配列属性
nodes_missing_value_tracks_true::mlir::ArrayAttr64ビット整数配列属性
nodes_modes::mlir::ArrayAttr文字列配列属性
nodes_nodeids::mlir::ArrayAttr64ビット整数配列属性
nodes_treeids::mlir::ArrayAttr64ビット整数配列属性
nodes_truenodeids::mlir::ArrayAttr64ビット整数配列属性
nodes_values::mlir::ArrayAttr32ビット浮動小数点配列属性
post_transform::mlir::StringAttr文字列属性

オペランド

オペランド 説明
X 32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、または64ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル

結果

結果 説明
Y 文字列型の値のテンソルまたは64ビット符号なし整数値のテンソル
Z 32ビット浮動小数点値のテンソル

onnx.TreeEnsembleRegressor (ONNXTreeEnsembleRegressorOp)

ONNX TreeEnsembleRegressor 演算

ツリーアンサンブル回帰器。N の各入力に対して回帰された値を返します。
nodes_ を含むすべての引数は、ツリーノードのタプルのフィールドであり、それらは同じ長さであると想定されており、インデックス i はこれらの入力全体でタプルをデコードします。各ノード ID は、各ツリー ID に対して 1 回のみ表示できます。
target_ で始まるすべてのフィールドは、リーフでの投票のタプルです。
リーフには複数の投票がある場合があり、各投票は関連する target_weights インデックスによって重み付けされます。
すべてのツリーのノード ID は 0 から開始し、1 ずつ増分する必要があります。
モード列挙型は BRANCH_LEQ、BRANCH_LT、BRANCH_GTE、BRANCH_GT、BRANCH_EQ、BRANCH_NEQ、LEAF です。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
aggregate_function::mlir::StringAttr文字列属性
base_values::mlir::ArrayAttr32ビット浮動小数点配列属性
n_targets::mlir::IntegerAttr64ビット符号付き整数属性
nodes_falsenodeids::mlir::ArrayAttr64ビット整数配列属性
nodes_featureids::mlir::ArrayAttr64ビット整数配列属性
nodes_hitrates::mlir::ArrayAttr32ビット浮動小数点配列属性
nodes_missing_value_tracks_true::mlir::ArrayAttr64ビット整数配列属性
nodes_modes::mlir::ArrayAttr文字列配列属性
nodes_nodeids::mlir::ArrayAttr64ビット整数配列属性
nodes_treeids::mlir::ArrayAttr64ビット整数配列属性
nodes_truenodeids::mlir::ArrayAttr64ビット整数配列属性
nodes_values::mlir::ArrayAttr32ビット浮動小数点配列属性
post_transform::mlir::StringAttr文字列属性
target_ids::mlir::ArrayAttr64ビット整数配列属性
target_nodeids::mlir::ArrayAttr64ビット整数配列属性
target_treeids::mlir::ArrayAttr64ビット整数配列属性
target_weights::mlir::ArrayAttr32ビット浮動小数点配列属性

オペランド

オペランド 説明
X 32ビット浮動小数点値のテンソル、または64ビット浮動小数点値のテンソル、または64ビット符号なし整数値のテンソル、または32ビット符号なし整数値のテンソル

結果

結果 説明
Y 32ビット浮動小数点値のテンソル

onnx.Trilu (ONNXTriluOp)

ONNX Trilu 演算

2 次元行列または 2 次元行列のバッチが与えられた場合、テンソルの上三角または下三角部分を返します。属性「upper」は、上部または下部のどちらを保持するかを決定します。true に設定すると、上三角行列が保持されます。それ以外の場合は、下三角行列が保持されます。「upper」属性のデフォルト値は true です。Trilu は、形状 [*, N, M] の 1 つの入力テンソルを受け取ります。ここで、* はゼロ以上のバッチ次元です。上三角部分は、指定された対角線 (k) 上および上の要素で構成されます。下三角部分は、対角線上および下の要素で構成されます。行列内の他のすべての要素はゼロに設定されます。k = 0 の場合、主対角線上および上下の三角部分が保持されます。upper が true に設定されている場合、正の k は主対角線とその上の (k-1) 個の対角線を除く上三角行列を保持します。負の k 値は、主対角線とその下の |k| 個の対角線を保持します。upper が false に設定されている場合、正の k は主対角線とその上の k 個の対角線を含む下三角行列を保持します。負の k 値は、主対角線と、その下の (|k|-1) 個の対角線を除外します。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
upper::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
入力 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、bfloat16型の値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル
k 64ビット符号なし整数値のテンソルまたは none 型

結果

結果 説明
出力 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、bfloat16型の値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル

onnx.Unique (ONNXUniqueOp)

ONNX Unique 演算

テンソルの一意な要素を検索します。オプションの属性「axis」が指定されている場合、「axis」に沿ってスライスされた一意なサブテンソルが返されます。それ以外の場合、入力テンソルは平坦化され、平坦化されたテンソルの一意な値が返されます。

この演算子は、入力テンソルの一意な値またはスライスされた一意なサブテンソルと、3 つのオプションの出力を返します。最初の出力テンソル「Y」には、入力のすべての一意な値またはサブテンソルが含まれています。2 番目のオプションの出力テンソル「indices」には、「Y」要素の「X」での最初の出現のインデックスが含まれています。3 番目のオプションの出力テンソル「inverse_indices」には、「X」の要素の「Y」における対応するインデックスが含まれています。4 番目のオプションの出力テンソル「counts」には、入力内の「Y」の各要素のカウントが含まれています。

出力は、昇順でソートされるか、オプションで入力内の値の最初の出現順にソートされます。

https://docs.scipy.org/doc/numpy/reference/generated/numpy.unique.html

例 1

input_X = [2, 1, 1, 3, 4, 3]
attribute_sorted = 0
attribute_axis = None
output_Y = [2, 1, 3, 4]
output_indices = [0, 1, 3, 4]
output_inverse_indices = [0, 1, 1, 2, 3, 2]
output_counts = [1, 2, 2, 1]

例 2

input_X = [[1, 3], [2, 3]]
attribute_sorted = 1
attribute_axis = None
output_Y = [1, 2, 3]
output_indices = [0, 2, 1]
output_inverse_indices = [0, 2, 1, 2]
output_counts = [1, 1, 2]

例 3

input_X = [[1, 0, 0], [1, 0, 0], [2, 3, 4]]
attribute_sorted = 1
attribute_axis = 0
output_Y = [[1, 0, 0], [2, 3, 4]]
output_indices = [0, 2]
output_inverse_indices = [0, 0, 1]
output_counts = [2, 1]

例 4

input_x = [[[1., 1.], [0., 1.], [2., 1.], [0., 1.]],
            [[1., 1.], [0., 1.], [2., 1.], [0., 1.]]]
attribute_sorted = 1
attribute_axis = 1

以下に、理解を深めるために中間データを示します。input_x (形状 = (2, 4, 2)) の軸 1 に沿ってスライスされた 4 つのサブテンソルがあります。

A: [[1, 1], [1, 1]],
   [[0, 1], [0, 1]],
   [[2, 1], [2, 1]],
   [[0, 1], [0, 1]].

3 つの一意なサブテンソルがあります

[[1, 1], [1, 1]],
[[0, 1], [0, 1]],
[[2, 1], [2, 1]].

ソートされた一意なサブテンソル

B: [[0, 1], [0, 1]],
   [[1, 1], [1, 1]],
   [[2, 1], [2, 1]].

output_Y は B から構築されます

[[[0. 1.], [1. 1.], [2. 1.]],
 [[0. 1.], [1. 1.], [2. 1.]]]

output_indices は B から A へのマッピングです

[1, 0, 2]

output_inverse_indices は A から B へのマッピングです

[1, 0, 2, 0]

output_counts

[2, 1, 1]

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
axis::mlir::IntegerAttr64ビット符号付き整数属性
sorted::mlir::IntegerAttr64ビット符号付き整数属性

オペランド

オペランド 説明
X 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル

結果

結果 説明
Y 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル
indices 64ビット符号なし整数値のテンソルまたは none 型
inverse_indices 64ビット符号なし整数値のテンソルまたは none 型
counts 64ビット符号なし整数値のテンソルまたは none 型

onnx.Unsqueeze (ONNXUnsqueezeOp)

ONNX Unsqueeze 演算

入力テンソル (data) の形状に 1 次元エントリを挿入します。必須入力である axes (次元インデックスのリストを含む) を受け取り、この演算子は、出力テンソル (expanded) の対応するインデックスに値 1 の次元を挿入します。

たとえば、形状 [3, 4, 5] の入力テンソル (data) が与えられた場合、Unsqueeze(data, axes=[0, 4]) は、data と同じデータを含むが、形状 [1, 3, 4, 5, 1] のテンソル (expanded) を出力します。

入力 axes には、重複するエントリを含めないでください。重複が含まれているとエラーになります。出力テンソル (output_rank) のランクは、入力テンソル (data) のランクと、axes の値の数を足したものです。axes の各値は、(包括的な) 範囲 [-output_rank, output_rank - 1] 内にある必要があります。axes の値の順序は関係なく、任意の順序で指定できます。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
data 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、bfloat16型の値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル
axes 64ビット符号なし整数値のテンソル

結果

結果 説明
expanded 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、bfloat16型の値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル

onnx.UnsqueezeV11 (ONNXUnsqueezeV11Op)

ONNX Unsqueeze 演算

入力テンソル (data) の形状に 1 次元エントリを挿入します。必須引数である axes (次元インデックスのリストを含む) を受け取り、この演算子は、出力テンソル (expanded) の対応するインデックスに値 1 の次元を挿入します。

例:形状が[3, 4, 5]の入力テンソル(data)が与えられた場合、Unsqueeze(data, axes=[0, 4])は、dataと同じデータを含むが、形状が[1, 3, 4, 5, 1]であるテンソル(expanded)を出力します。

属性axesに重複したエントリを含めることはできません。重複が含まれている場合はエラーになります。出力テンソル(output_rank)のランクは、入力テンソル(data)のランクにaxesの値の数を加えたものです。axesの各値は、(両端を含む)範囲[-output_rank, output_rank - 1]内である必要があります。axesの値の順序は重要ではなく、任意の順序で指定できます。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
axes::mlir::ArrayAttr64ビット整数配列属性

オペランド

オペランド 説明
data 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル

結果

結果 説明
expanded 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル

onnx.Upsample (ONNXUpsampleOp)

ONNX Upsample 操作

入力テンソルをアップサンプルします。出力テンソルの各次元の値は、output_dimension = floor(input_dimension * scale)となります。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
mode::mlir::StringAttr文字列属性

オペランド

オペランド 説明
X 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル
スケール 32ビット浮動小数点値のテンソル

結果

結果 説明
Y 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル

onnx.UpsampleV7 (ONNXUpsampleV7Op)

ONNX Upsample 操作

入力テンソルをアップサンプルします。出力テンソルの各次元の値は、output_dimension = floor(input_dimension * scale)となります。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
mode::mlir::StringAttr文字列属性
スケール::mlir::ArrayAttr32ビット浮動小数点配列属性

オペランド

オペランド 説明
X 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル

結果

結果 説明
Y 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル

onnx.Where (ONNXWhereOp)

ONNX Where 操作

条件に応じて、XまたはYの要素を返します。Whereは、3つのパラメータを持つnumpy.whereのように動作します。

この演算子は、多方向(つまり、NumPyスタイル)のブロードキャストをサポートしています。詳細については、ドキュメントを参照してください。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
condition 1ビット符号なし整数値のテンソル
X 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、bfloat16型の値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル
Y 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、bfloat16型の値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル

結果

結果 説明
出力 8ビット符号なし整数値のテンソル、16ビット符号なし整数値のテンソル、32ビット符号なし整数値のテンソル、64ビット符号なし整数値のテンソル、8ビット符号付き整数値のテンソル、16ビット符号付き整数値のテンソル、32ビット符号付き整数値のテンソル、64ビット符号付き整数値のテンソル、bfloat16型の値のテンソル、16ビット浮動小数点値のテンソル、32ビット浮動小数点値のテンソル、64ビット浮動小数点値のテンソル、文字列型の値のテンソル、1ビット符号なし整数値のテンソル、32ビット浮動小数点要素を持つ複素数型のテンソル、または64ビット浮動小数点要素を持つ複素数型のテンソル

onnx.Xor (ONNXXorOp)

ONNX Xor 操作

入力テンソルABに対して、要素ごとのxor論理演算を実行した結果のテンソルを返します(Numpyスタイルのブロードキャストをサポートします)。

この演算子は、多方向(つまり、NumPyスタイル)のブロードキャストをサポートしています。詳細については、ドキュメントを参照してください。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
A 1ビット符号なし整数値のテンソル
B 1ビット符号なし整数値のテンソル

結果

結果 説明
C 1ビット符号なし整数値のテンソル

onnx.Yield (ONNXYieldOp)

ONNX yield 操作

構文

operation ::= `onnx.Yield` attr-dict ($operands^ `:` type($operands))?

onnx.Yield操作は、ONNXサブグラフ内のyield操作を表します。この操作は可変数のオペランドを取り、結果は生成しません。

この操作は標準の一部ではなく、onnx-mlirを支援するために追加されました。ONNXLoop/Scan/IfOpリージョンを終了します。

特性:AlwaysSpeculatableImplTraitReturnLikeTerminator

Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), RegionBranchTerminatorOpInterface

効果: MemoryEffects::Effect{}

オペランド

オペランド 説明
オペランド 任意の型の可変長

onnx.ZipMap (ONNXZipMapOp)

ONNX ZipMap 操作

入力と属性からマップを作成します。
値は入力テンソルによって提供され、キーは属性によって指定されます。classlabels_stringsまたはclasslabels_int64sのいずれかでキーを指定する必要があります(両方同時に指定することはできません)。
テンソルの列は、属性で指定されたキーと1対1に対応します。キーと同じ数の列が必要です。

特徴: AlwaysSpeculatableImplTrait

インターフェース: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShapeHelperOpInterface, ShapeInferenceOpInterface

効果: MemoryEffects::Effect{}

属性

属性MLIR 型説明
classlabels_int64s::mlir::ArrayAttr64ビット整数配列属性
classlabels_strings::mlir::ArrayAttr文字列配列属性

オペランド

オペランド 説明
X 32ビット浮動小数点値のテンソル

結果

結果 説明
Z 文字列型または32ビット浮動小数点数値の任意の組み合わせのタプルのSeqType、または64ビット符号なし整数または32ビット浮動小数点数値の任意の組み合わせのタプルのSeqType