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 接受一個輸入資料 (張量) 並產生一個輸出資料 (張量),其中絕對值 y = abs(x) 會逐元素地套用至張量。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 描述
輸入 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量

結果

結果 描述
輸出 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量

onnx.Acosh (ONNXAcoshOp)

ONNX Acosh 運算

計算給定輸入張量的雙曲反餘弦,逐元素。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 描述
輸入 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量

結果

結果 描述
輸出 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量

onnx.Adagrad (ONNXAdagradOp)

ONNX Adagrad 運算

計算 ADAGRAD 的一次迭代,一種基於隨機梯度的最佳化演算法。此運算子可以執行多個張量變數的最佳化。

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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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 的一次迭代,一種基於隨機梯度的最佳化演算法。此運算子可以執行多個張量變數的最佳化。

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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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 運算

傳回在輸入張量 AB 上逐元素執行 and 邏輯運算所產生的張量 (支援 Numpy 式的廣播)。

此運算子支援多向 (即 Numpy 式) 廣播;如需更多詳細資訊,請查看 文件

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 描述
A 1 位元無號整數值張量
B 1 位元無號整數值張量

結果

結果 描述
C 1 位元無號整數值張量

onnx.ArgMax (ONNXArgMaxOp)

ONNX ArgMax 運算

沿著提供的軸計算輸入張量元素的最大元素索引。如果 keepdims 等於 1,則產生的張量與輸入具有相同的階數。如果 keepdims 等於 0,則產生的張量會修剪縮減的維度。如果 select_last_index 為 True (預設為 False),則如果最大值在輸入中出現多次,則會選取最大值的最後一次出現的索引。否則,會選取第一次出現的索引。輸出張量的型別為整數。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
::mlir::IntegerAttr64 位元帶符號整數屬性
keepdims::mlir::IntegerAttr64 位元帶符號整數屬性
select_last_index::mlir::IntegerAttr64 位元帶符號整數屬性

運算元

運算元 描述
資料 8 位元無符號整數值張量或 16 位元無符號整數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量或 8 位元無號整數值張量或 16 位元無號整數值張量或 32 位元無號整數值張量或 64 位元無號整數值張量或 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量或 bfloat16 型別值張量

結果

結果 描述
縮減 64 位元無號整數值張量

onnx.ArgMin (ONNXArgMinOp)

ONNX ArgMin 運算

沿著提供的軸計算輸入張量元素的最小元素索引。如果 keepdims 等於 1,則產生的張量與輸入具有相同的階數。如果 keepdims 等於 0,則產生的張量會修剪縮減的維度。如果 select_last_index 為 True (預設為 False),則如果最小值在輸入中出現多次,則會選取最小值的最後一次出現的索引。否則,會選取第一次出現的索引。輸出張量的型別為整數。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
::mlir::IntegerAttr64 位元帶符號整數屬性
keepdims::mlir::IntegerAttr64 位元帶符號整數屬性
select_last_index::mlir::IntegerAttr64 位元帶符號整數屬性

運算元

運算元 描述
資料 8 位元無符號整數值張量或 16 位元無符號整數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量或 8 位元無號整數值張量或 16 位元無號整數值張量或 32 位元無號整數值張量或 64 位元無號整數值張量或 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量或 bfloat16 型別值張量

結果

結果 描述
縮減 64 位元無號整數值張量

onnx.ArrayFeatureExtractor (ONNXArrayFeatureExtractorOp)

ONNX ArrayFeatureExtractor 運算

根據傳遞的索引選取輸入張量的元素。
索引會套用至張量的最後一個軸。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 描述
X 32 位元浮點值張量或 64 位元浮點值張量或 64 位元無號整數值張量或 32 位元無號整數值張量或字串型別值張量
Y 64 位元無號整數值張量

結果

結果 描述
Z 32 位元浮點值張量或 64 位元浮點值張量或 64 位元無號整數值張量或 32 位元無號整數值張量或字串型別值張量

onnx.Asin (ONNXAsinOp)

ONNX Asin 運算

計算給定輸入張量的反正弦 (正弦的反函數),逐元素。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 描述
輸入 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量

結果

結果 描述
輸出 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量

onnx.Asinh (ONNXAsinhOp)

ONNX Asinh 運算

計算給定輸入張量的雙曲反正弦,逐元素。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 描述
輸入 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量

結果

結果 描述
輸出 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量

onnx.Atan (ONNXAtanOp)

ONNX Atan 運算

計算給定輸入張量的反正切 (正切的反函數),逐元素。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 描述
輸入 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量

結果

結果 描述
輸出 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量

onnx.Atanh (ONNXAtanhOp)

ONNX Atanh 運算

計算給定輸入張量的雙曲反正切,逐元素。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 描述
輸入 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量

結果

結果 描述
輸出 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量

onnx.AveragePool (ONNXAveragePoolOp)

ONNX AveragePool 運算

AveragePool 使用輸入張量 X,並根據核心大小、步幅大小和填補長度,在張量上套用平均池化。平均池化包含根據核心大小計算輸入張量子集的全部值的平均值,並將資料降採樣至輸出張量 Y 以供進一步處理。輸出空間形狀的計算方式不同,具體取決於是否使用明確的填補 (使用 pads),或使用自動填補 (使用 auto_pad)。使用明確填補 (https://pytorch.dev.org.tw/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://tensorflow.dev.org.tw/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_UPPERSAME_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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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 測試模式中的批次正規化運算

執行如論文 https://arxiv.org/abs/1502.03167 中所述的批次正規化。根據執行模式,輸出數量有多種情況,我們將在下方列出

輸出情況 #1:Y、mean、var、saved_mean、saved_var (訓練模式) 輸出情況 #2:Y (測試模式) ”

對於先前 (已淘汰) 的非空間情況,建議實作者在 BatchNormalization Op 之前將輸入形狀攤平為 (N x CD1D2 ..*Dn)。此運算子具有選用的輸入/輸出。如需關於選用引數表示的更多詳細資訊,請查看 文件。可以使用空字串來代替實際引數的名稱,以表示遺失的引數。尾隨選用引數 (後面沒有接著存在的引數) 也可以直接省略。

此運算不是標準的一部分,並且新增用於協助 onnx-mlir。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
epsilon::mlir::FloatAttr32 位元浮點屬性
momentum::mlir::FloatAttr32 位元浮點屬性

運算元

運算元 描述
X 任何型別值或任何型別值張量的記憶體參考
scale 任何型別值或任何型別值張量的記憶體參考
B 任何型別值或任何型別值張量的記憶體參考
mean 任何型別值或任何型別值張量的記憶體參考
var 任何型別值或任何型別值張量的記憶體參考

結果

結果 描述
o_Y 任何型別值或任何型別值張量的記憶體參考

onnx.BatchNormalization (ONNXBatchNormalizationOp)

ONNX 批次正規化運算

執行如論文 https://arxiv.org/abs/1502.03167 中所述的批次正規化。根據執行模式,有五個必要的輸入「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 的計算使用浮點數,以避免浮點數 16 輸入溢位。

當 training_mode=False 時

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

對於先前已棄用的非空間案例,建議實作者在執行 BatchNormalization 操作前,將輸入形狀扁平化為 (N x C * D1 * D2 * … * Dn)。此運算子具有可選的輸入/輸出。請參閱 文件 以了解有關可選參數表示的更多詳細資訊。可以使用空字串來代替實際參數的名稱,以指示缺少參數。尾隨的可選參數(後面沒有接續任何存在的參數)也可以直接省略。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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 白努利運算

從白努利分布中抽取二元隨機數(0 或 1)。輸入張量應為包含機率 p(範圍在 [0,1] 之間的值)的張量,用於抽取二元隨機數,其中以機率 p 產生輸出 1,並以機率 (1-p) 產生輸出 0。

此運算子是非決定性的,在不同的實作中可能不會產生相同的值(即使指定了種子)。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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 二值化運算

根據與閾值比較的結果,將輸入張量的數值逐元素地映射到 0 或 1。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
threshold::mlir::FloatAttr32 位元浮點屬性

運算元

運算元 描述
X 32 位元浮點數值張量或 64 位元浮點數值張量或 64 位元無號整數值張量或 32 位元無號整數值張量

結果

結果 描述
Y 32 位元浮點數值張量或 64 位元浮點數值張量或 64 位元無號整數值張量或 32 位元無號整數值張量

onnx.BitShift (ONNXBitShiftOp)

ONNX 位元移位運算

位元移位運算子執行逐元素運算。對於每個輸入元素,如果屬性 "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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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 位元與運算

傳回對輸入張量 AB 逐元素執行位元 and 運算所得的張量(支援 Numpy 式廣播)。

此運算子支援多向 (即 Numpy 式) 廣播;如需更多詳細資訊,請查看 文件

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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 位元非運算

傳回輸入張量逐元素的位元非。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 描述
X 8 位元無符號整數值張量或 16 位元無符號整數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量或 8 位元無號整數值張量或 16 位元無號整數值張量或 32 位元無號整數值張量或 64 位元無號整數值張量

結果

結果 描述
Y 8 位元無符號整數值張量或 16 位元無符號整數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量或 8 位元無號整數值張量或 16 位元無號整數值張量或 32 位元無號整數值張量或 64 位元無號整數值張量

onnx.BitwiseOr (ONNXBitwiseOrOp)

ONNX 位元或運算

傳回對輸入張量 AB 逐元素執行位元 or 運算所得的張量(支援 Numpy 式廣播)。

此運算子支援多向 (即 Numpy 式) 廣播;如需更多詳細資訊,請查看 文件

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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 位元互斥或運算

傳回對輸入張量 AB 逐元素執行位元 xor 運算所得的張量(支援 Numpy 式廣播)。

此運算子支援多向 (即 Numpy 式) 廣播;如需更多詳細資訊,請查看 文件

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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 布萊克曼視窗運算

產生如論文 https://ieeexplore.ieee.org/document/1455106 中所述的布萊克曼視窗。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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 運算

此運算子將給定輸入張量(第一個輸入)的元素轉換為與第二個輸入張量元素的相同資料類型。請參閱 Cast 運算子的文件以取得更多詳細資訊。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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 的情況是未定義的行為。

始終允許從數值類型轉換為任何數值類型。使用者必須注意兩種類型之間範圍差異造成的精度損失和數值變化。例如,64 位元浮點數 3.1415926459 可能會四捨五入為 32 位元浮點數 3.141592。同樣,將整數 36 轉換為布林值可能會產生 1,因為我們會截斷無法儲存在目標類型中的位元。

更詳細地說,如果目標類型不是浮點數 8 類型,則數值類型之間的轉換應遵循以下規則。

引入浮點數 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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ResultTypeInferenceOpInterfaceShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
saturate::mlir::IntegerAttr64 位元帶符號整數屬性
to::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 運算

將字串轉換為整數,反之亦然。
使用兩個等長的序列在整數和字串之間進行映射,其中相同索引處的字串和整數詳細說明了映射。
每個運算子根據提供的預設值屬性,將整數轉換為字串或將字串轉換為整數。應該只定義一個預設值屬性。
如果設定了字串預設值,它將把整數轉換為字串。如果設定了整數預設值,它將把字串轉換為整數。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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 接受一個輸入資料(張量) 並產生一個輸出資料 (張量),將 ceil 函數 y = ceil(x) 逐元素應用於張量。如果 x 是整數、+0、-0、NaN 或無限大,則返回 x 本身。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
alpha::mlir::FloatAttr32 位元浮點屬性

運算元

運算元 描述
X 32 位元浮點數值張量

結果

結果 描述
Y 32 位元浮點數值張量

onnx.CenterCropPad (ONNXCenterCropPadOp)

ONNX CenterCropPad 運算

將輸入中心裁剪或填充至指定維度。

可以為 axes 的子集指定裁剪/填充維度。未指定的維度不會被裁剪或填充。

如果輸入維度大於裁剪形狀,則從輸入中提取中心裁剪視窗。如果輸入維度小於裁剪形狀,則在每一側均勻填充輸入,使輸入位於輸出中心。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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.dev.org.tw/docs/stable/generated/torch.nn.Fold.html,但它僅支援批次處理多維圖像張量。在 https://github.com/f-dangel/unfoldNd/ 上可以找到另一個具有 N 維度支援的 Python 實現。

注意:雖然指定 image_shape 看起來是多餘的,因為它可以從卷積公式計算出來,但它是更進階場景的必要輸入,如 PyTorch 的實現中所述 (https://github.com/pytorch/pytorch/blob/master/aten/src/ATen/native/Col2Im.cpp#L10)

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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://scipy-docs.dev.org.tw/doc/numpy/reference/generated/numpy.compress.html

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
::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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
::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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
::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 合併運算

將以下運算序列合併為一個運算 v1 = onnx.concat v2 = onnx.shape(v1) v3 = onnx.transpose(v1)

此運算不是標準的一部分,並且新增用於協助 onnx-mlir。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
::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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ResultTypeInferenceOpInterfaceShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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_*。

特徵:AlwaysSpeculatableImplTrait, ConstantLike

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ResultTypeInferenceOpInterfaceShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
auto_pad::mlir::StringAttr字串屬性
dilations::mlir::ArrayAttr64 位元整數陣列屬性
group::mlir::IntegerAttr64 位元帶符號整數屬性
kernel_shape::mlir::ArrayAttr64 位元整數陣列屬性
pads::mlir::ArrayAttr64 位元整數陣列屬性
strides::mlir::ArrayAttr64 位元整數陣列屬性

運算元

運算元 描述
x 8 位元無號整數值張量或 8 位元無正負號整數值張量
w 8 位元無號整數值張量或 8 位元無正負號整數值張量
x_zero_point 8 位元無號整數值張量或 8 位元無正負號整數值張量或無類型
w_zero_point 8 位元無號整數值張量或 8 位元無正負號整數值張量或無類型

結果

結果 描述
y 32 位元無號整數值張量

onnx.Conv (ONNXConvOp)

ONNX 卷積運算

卷積運算子會取用輸入張量和濾波器,並計算輸出。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
auto_pad::mlir::StringAttr字串屬性
dilations::mlir::ArrayAttr64 位元整數陣列屬性
group::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 位元浮點數值張量或無類型

結果

結果 描述
Y 16 位元浮點數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量

onnx.ConvTranspose (ONNXConvTransposeOp)

ONNX 轉置卷積運算

轉置卷積運算子會取用輸入張量和濾波器,並計算輸出。

如果提供了 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] 如果 (auto_pads == SAME_UPPER): pads[start_i] = total_padding[i]/2; pads[end_i] = total_padding[i] - (total_padding[i]/2) 否則: pads[start_i] = total_padding[i] - (total_padding[i]/2); pads[end_i] = (total_padding[i]/2)。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
auto_pad::mlir::StringAttr字串屬性
dilations::mlir::ArrayAttr64 位元整數陣列屬性
group::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 餘弦運算

逐元素計算給定輸入張量的餘弦值。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 描述
輸入 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量

結果

結果 描述
輸出 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量

onnx.Cosh (ONNXCoshOp)

ONNX 雙曲餘弦運算

逐元素計算給定輸入張量的雙曲餘弦值。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 描述
輸入 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量

結果

結果 描述
輸出 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量

onnx.CumSum (ONNXCumSumOp)

ONNX 累加總和運算

沿著給定的軸執行輸入元素的累加總和。預設情況下,它會執行包含性總和,這表示第一個元素會直接複製。透過 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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
exclusive::mlir::IntegerAttr64 位元帶符號整數屬性
reverse::mlir::IntegerAttr64 位元帶符號整數屬性

運算元

運算元 描述
x 32 位元無號整數值張量或 64 位元無號整數值張量或 32 位元無正負號整數值張量或 64 位元無正負號整數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型值張量
32 位元無號整數值張量或 64 位元無號整數值張量

結果

結果 描述
y 32 位元無號整數值張量或 64 位元無號整數值張量或 32 位元無正負號整數值張量或 64 位元無正負號整數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型值張量

onnx.Custom (ONNXCustomOp)

ONNX 自訂運算

CustomOp 不是 onnx 標準中定義的 Op,而是為了支援可以轉換或最終呼叫使用者定義外部函數的 Op 的擴充功能而新增的。

它允許呼叫使用者定義的運算,單一必要屬性是一個指定運算名稱的字串。其他輸入會傳遞給使用者運算。

輸入和輸出的數量可以不同。

輸入和輸出都允許 NoneType,因為 CustomOp 可能需要固定數量的輸入/輸出才能進行外部函數呼叫。

除了傳遞給使用者定義運算的值之外,還會引入某些屬性以方便分析和轉換 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 運算的現有形狀推斷模式會重複用於 CustomOp,形狀推斷的多型基於其屬性值。由於目前針對 ONNX 運算的實作方式,具有指定形狀推斷屬性的 CustomOp 僅支援單一輸出,而非可變輸出。

如果未提供形狀推斷的屬性,則 CustomOp 的形狀推斷只會直接傳遞。

所有這些額外屬性都是選用的,其設計目的是減少侵入性。新增屬性時,.mlir 檔案可以保持不變。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
function_name::mlir::StringAttr字串屬性
output_element_type::mlir::TypeAttr任何類型屬性
shape_infer_pattern::mlir::StringAttr字串屬性
inputs_for_infer::mlir::ArrayAttr64 位元整數陣列屬性

運算元

運算元 描述
輸入 任何類型值的張量或任何類型值的記憶體參考或無類型之變數

結果

結果 描述
輸出 任何類型值的張量或任何類型值的記憶體參考或無類型之變數

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://scipy-docs.dev.org.tw/doc/scipy/tutorial/fft.html

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
inverse::mlir::IntegerAttr64 位元帶符號整數屬性
onesided::mlir::IntegerAttr64 位元帶符號整數屬性

運算元

運算元 描述
輸入 bfloat16 類型值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量
dft_length 32 位元無正負號整數值張量或 64 位元無正負號整數值張量或無類型
64 位元無正負號整數值張量或無類型

結果

結果 描述
輸出 bfloat16 類型值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量

onnx.DFTV17 (ONNXDFTV17Op)

ONNX DFT 運算

計算輸入的離散傅立葉變換。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
::mlir::IntegerAttr64 位元帶符號整數屬性
inverse::mlir::IntegerAttr64 位元帶符號整數屬性
onesided::mlir::IntegerAttr64 位元帶符號整數屬性

運算元

運算元 描述
輸入 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型數值張量
dft_length 32 位元無正負號整數值張量或 64 位元無正負號整數值張量或無類型

結果

結果 描述
輸出 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型數值張量

onnx.DeformConv (ONNXDeformConvOp)

ONNX 可變形卷積運算

執行 https://arxiv.org/abs/1703.06211 和 https://arxiv.org/abs/1811.11168 中所述的可變形卷積。此運算子規格支援一般 N 維案例。請注意,最常見的使用案例具有 2D 或 3D 資料。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
dilations::mlir::ArrayAttr64 位元整數陣列屬性
group::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 的反向轉換。更具體而言,此運算會輸出輸入張量的複本,其中深度維度的值會以空間區塊移動到高度和寬度維度。預設情況下,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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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 線性反量化運算

線性反量化運算子。它會取用量化張量、比例和零點,以計算完整精確度張量。反量化公式為 y = (x - x_zero_point) * x_scalex_scalex_zero_point 的形狀必須相同,並且可以是每個張量/每層量化的純量,也可以是每個軸量化的 1 維張量。x_zero_pointx 的類型必須相同。xy 的形狀必須相同。在反量化 int32 的情況下,沒有零點 (零點應為 0)。zero-point 通常不會用於 float8e4m3fn、float8e4m3fnuz、float8e5m2、float8e5m2fnuz 量化,但為了保持一致性,反量化公式仍保持不變,且 'x_scale' 仍會決定輸出類型。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
::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 類型值張量或無類型

結果

結果 描述
y 32 位元浮點數值張量或 16 位元浮點數值張量或 bfloat16 類型值張量

onnx.Det (ONNXDetOp)

ONNX Det 運算

Det 計算方陣或方陣批次的行列式。Det 取用一個形狀為 [*, M, M] 的輸入張量,其中 * 為零或多個批次維度,且最內層的 2 個維度構成方陣。輸出是形狀為 [*] 的張量,其中包含所有輸入子矩陣的行列式。例如,當輸入為 2 維時,輸出為純量 (形狀為空:[])。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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 維度群組運算。

此運算用於將 Tensor 的編譯時期未知維度連結至群組 ID。預期在執行時期具有相同群組 ID 的兩個維度會相等。

"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 型別描述
::mlir::IntegerAttr64 位元帶符號整數屬性
group_id::mlir::IntegerAttr64 位元帶符號整數屬性

運算元

運算元 描述
資料 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 bfloat16 類型數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或字串類型數值張量或 1 位元無號整數數值張量或具有 32 位元浮點元素值的複數類型張量或具有 64 位元浮點元素值的複數類型張量

onnx.Dim (ONNXDimOp)

ONNX 維度運算。

此運算用於取得 Tensor 的維度;

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

axis 識別形狀內要取得的維度。

此運算不是標準的一部分,並且新增用於協助 onnx-mlir。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
::mlir::IntegerAttr64 位元帶符號整數屬性

運算元

運算元 描述
資料 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 bfloat16 類型數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或字串類型數值張量或 1 位元無號整數數值張量或具有 32 位元浮點元素值的複數類型張量或具有 64 位元浮點元素值的複數類型張量

結果

結果 描述
dim 64 位元無號整數值張量

onnx.Div (ONNXDivOp)

ONNX 除法運算

執行元素級二元除法 (支援 Numpy 風格的廣播)。

此運算子支援多向 (即 Numpy 式) 廣播;如需更多詳細資訊,請查看 文件

(Opset 14 變更):擴充支援的型別,以包含 uint8、int8、uint16 和 int16。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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(布林純量)。它產生兩個張量輸出,output(浮點數張量)和 mask(可選的 Tensor<bool>)。如果 training_mode 為 true,則輸出 Y 將會是隨機的 dropout;請注意,此 Dropout 會以下列方程式縮放遮罩的輸入資料,因此若要將訓練好的模型轉換為推論模式,使用者可以簡單地不傳遞 training_mode 輸入或將其設定為 false。

output = scale * data * mask,

其中

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

此運算子具有可選的輸入/輸出。請參閱 文件,以取得關於可選引數表示方式的更多詳細資訊。可以使用空字串來取代實際引數的名稱,以表示遺失的引數。尾隨的可選引數(後面沒有接著存在的引數)也可以直接省略。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
seed::mlir::IntegerAttr64 位元帶符號整數屬性

運算元

運算元 描述
資料 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型數值張量
ratio 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 none 類型
training_mode 1 位元無號整數值或無類型的張量

結果

結果 描述
輸出 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型數值張量
mask 1 位元無號整數值或無類型的張量

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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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) 中發生的所有未在 output-term 中發生的索引執行加總。

Einsum 運算子使用愛因斯坦求和慣例,評估一系列張量的代數張量運算。方程式字串包含一個以逗號分隔的小寫字母序列。每個項對應於一個運算元張量,並且項中的字元對應於運算元維度。

此序列後面可以加上 "->" 來分隔方程式的左側和右側。如果方程式包含 "->" 後面接著右側,則會執行愛因斯坦求和的明確(非傳統)形式,並且右側的索引會指出輸出張量的維度。在其他情況下,輸出索引會(隱含地)設定為方程式中正好出現一次的索引的字母排序序列。

當一個維度字元在左側重複時,它表示沿著該維度求和。

方程式可能包含省略號 ("…") 以啟用廣播。省略號必須指出固定的維度數。具體來說,方程式中每次出現省略號都必須表示相同的維度數。右側最多可以包含一個省略號。在隱含模式下,省略號維度會設定為輸出的開頭。方程式字串可能包含空格 (U+0020) 字元。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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 接受一個輸入資料 (Tensor) 並產生一個輸出資料 (張量),其中函數 `f(x) = alpha * (exp(x) - 1.) for x < 0`,`f(x) = x for x >= 0` 會逐元素套用到張量。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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 相等運算

傳回對輸入張量 AB 逐元素執行 equal 邏輯運算所產生的張量(支援 Numpy 風格的廣播)。

此運算子支援多向 (即 Numpy 式) 廣播;如需更多詳細資訊,請查看 文件

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 描述
輸入 bfloat16 類型值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量

結果

結果 描述
輸出 bfloat16 類型值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量

onnx.Expand (ONNXExpandOp)

ONNX 展開運算

根據給定的形狀和廣播規則廣播輸入張量。廣播規則與 numpy.array(input) * numpy.ones(shape) 相似:維度會向右對齊;兩個對應的維度必須具有相同的值,或者其中一個的值等於 1。此外,此運算子與 numpy.broadcast_to(input, shape) 相似,但主要差異在於 numpy.broadcast_to() 不允許形狀小於 input.size()。當形狀中的某些維度等於 1 時,或者當 shape.ndim < input.shape.ndim 時,輸出.shape 可能不等於形狀。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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 運算

產生一個 2D 張量(矩陣),對角線上為 1,其他位置為 0。僅支援 2D 張量,即輸入 T1 的秩必須為 2。輸出張量的形狀與輸入張量的形狀相同。資料類型可以由 'dtype' 引數指定。如果未指定 'dtype',則會使用輸入張量的類型。預設情況下,主對角線會填入 1,但屬性 'k' 可用於填入上方或下方的對角線。'dtype' 引數必須是 TensorProto 訊息中 'DataType' 列舉欄位中指定的資料類型之一,並且作為輸出類型必須有效。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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 運算

將輸入張量串連成一個連續的輸出。
所有輸入形狀都是 2D,並沿著第二個維度串連。1D 張量會被視為 [1,C]。輸入會複製到輸出,並保持輸入引數的順序。
所有輸入必須是整數或浮點數,而輸出將會是全部的浮點數值。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
inputdimensions::mlir::ArrayAttr64 位元整數陣列屬性

運算元

運算元 描述
X 32 位元無號整數值、64 位元無號整數值、32 位元浮點數值或 64 位元浮點數值的張量的變數

結果

結果 描述
Y 32 位元浮點數值張量

onnx.Flatten (ONNXFlattenOp)

ONNX 平坦化運算

將輸入張量平坦化為 2D 矩陣。如果輸入張量的形狀為 (d_0, d_1, … d_n),則輸出將具有形狀 (d_0 X d_1 … d_(axis-1), d_axis X d_(axis+1) … X dn)。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
::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 接受一個輸入資料 (Tensor) 並產生一個輸出資料 (張量) 其中 floor 為向下取整函數,y = floor(x),會逐元素地應用於張量。如果 x 是整數、+0、-0、NaN 或無限大,則返回 x 本身。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 描述
X 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型數值張量

結果

結果 描述
Y 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型數值張量

onnx.GRU (ONNXGRUOp)

ONNX GRU 運算

計算單層 GRU。此運算子通常透過一些自訂實作(例如 CuDNN)來支援。

符號

激活函數

注意:以下為可選

方程式 (預設值:f=Sigmoid,g=Tanh)

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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 位元無符號整數值張量或無類型
initial_h 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 none 類型

結果

結果 描述
Y 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 none 類型
Y_h 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 none 類型

onnx.GatherElements (ONNXGatherElementsOp)

ONNX GatherElements 運算

GatherElements 接受兩個輸入 dataindices,它們具有相同的階數 r >= 1,以及一個可選屬性 axis,用於識別 data 的軸(預設情況下,最外層的軸,即軸 0)。它是一個索引運算,通過根據 indices 張量元素的索引位置索引到輸入 data 張量來產生其輸出。其輸出形狀與 indices 的形狀相同,並且對於 indices 中的每個元素都包含一個值(從 data 中收集)。

例如,在 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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
::mlir::IntegerAttr64 位元帶符號整數屬性

運算元

運算元 描述
資料 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 維整數張量,最好將其視為一個 (q-1) 維張量,其中包含指向 data 的索引元組,其中每個元素定義了 data 的一個切片

batch_dims (表示為 b)是一個整數,指示批次維度的數量,即 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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
batch_dims::mlir::IntegerAttr64 位元帶符號整數屬性

運算元

運算元 描述
資料 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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
::mlir::IntegerAttr64 位元帶符號整數屬性

運算元

運算元 描述
資料 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 接受一個輸入資料 (張量) 並產生一個輸出資料 (張量) 其中高斯誤差線性單元函數 $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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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 類型值張量或無類型

結果

結果 描述
Y 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量或 bfloat16 類型值張量

onnx.GlobalAveragePool (ONNXGlobalAveragePoolOp)

ONNX GlobalAveragePool 運算

GlobalAveragePool 消耗輸入張量 X 並在相同通道中的值上應用平均池化。這等同於核心大小等於輸入張量空間維度的 AveragePool。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 描述
X 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量

結果

結果 描述
Y 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量

onnx.GlobalLpPool (ONNXGlobalLpPoolOp)

ONNX GlobalLpPool 運算

GlobalLpPool 消耗輸入張量 X 並在相同通道中的值上應用 lp 池化。這等同於核心大小等於輸入張量空間維度的 LpPool。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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) 為 Y 相對於 W (Z) 的梯度。使用者可以透過插入 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」中獨立變數的函數。由於我們僅計算「y」相對於「xs」中可微分變數的梯度,因此此 Gradient 僅輸出 dY/dW 和 dY/dZ。請注意,「H」不能出現在「xs」和「zs」中。原因是「H」可以由張量「W」和「X」決定,因此「H」不是獨立變數。

所有輸出都是可選的。如有需要,例如,使用者可以將空字串指派給該 Gradient 的第一個輸出名稱,以跳過 dY/dW 的產生。請注意,可選輸出的概念也可以在 ONNX 的 RNN、GRU 和 LSTM 中找到。

Gradient 運算符可以計算相對於中間張量的導數。例如,可以透過以下方式完成 Y 相對於 H 的梯度

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

若要計算 O 相對於 W 的二階導數 (以 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 節點的輸入定義了計算梯度的值。我們可以將不同的張量輸入到識別的圖中。例如,可以透過提供該值作為 Gradient 節點的輸入,來計算 Y 相對於 H 在 H_1 特定值下的梯度。

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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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 運算

傳回在輸入張量 AB 上逐元素執行 greater 邏輯運算 (具有 Numpy 樣式廣播支援) 後得到的張量。

此運算子支援多向 (即 Numpy 式) 廣播;如需更多詳細資訊,請查看 文件

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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 運算

傳回在輸入張量 AB 上逐元素執行 greater_equal 邏輯運算 (具有 Numpy 樣式廣播支援) 後得到的張量。

此運算子支援多向 (即 Numpy 式) 廣播;如需更多詳細資訊,請查看 文件

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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,使用來自 gridX 值和像素位置計算輸出 Y。目前僅支援空間 (4-D) 輸入。對於形狀為 (N, C, H, W) 的輸入 X 和形狀為 (N, H_out, W_out, 2) 的 grid,輸出 Y 的形狀將為 (N, C, H_out, W_out)。

張量 X 包含 H x W 二維影像中方形像素中心的數值。張量 grid 描述要使用指定的內插法 (模式) 和填補模式 (對於落在二維影像之外的格點位置) 計算輸出 Y 的正規化位置。

grid[N, H_out, W_out] 中的元素是大小為 2 的向量,指定 X 二維空間中的位置。它們用於內插 Y[N, C, H_out, W_out] 的輸出值。

GridSample 運算符通常用於在 空間轉換器網路中執行格點產生器和取樣器。另請參閱 torch.nn.functional.grid_sample

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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 應可被通道數量整除,以便每個群組的通道數量相同。

整體計算包含兩個階段:第一階段會正規化元素,使每個群組中每個實例的均值為零,變異數為單位,而第二階段會縮放並位移第一階段的結果。第一階段中使用的浮點數精度由 stash_type 屬性決定。例如,如果 stash_type 為 1,則運算符會將所有輸入變數轉換為 32 位元浮點數,執行計算,然後將正規化的結果轉換回 X 的原始類型。第二階段不依賴 stash_type

當群組數量與通道數量相同時,此運算符等同於 InstanceNormalization。當只有一個群組時,此運算符等同於 LayerNormalization。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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。當只有一個群組時,此運算符等同於 LayerNormalization。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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 中所述產生 Hamming 視窗。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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 中所述產生 Hann 視窗。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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 接受一個輸入資料(張量) 並產生一個輸出資料 (張量),其中 HardSigmoid 函數 y = max(0, min(1, alpha * x + beta)) 會逐元素應用於該張量。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
alpha::mlir::FloatAttr32 位元浮點屬性
beta::mlir::FloatAttr32 位元浮點屬性

運算元

運算元 描述
X 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量

結果

結果 描述
Y 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量

onnx.HardSwish (ONNXHardSwishOp)

ONNX HardSwish 運算

HardSwish 接受一個輸入資料(張量) 並產生一個輸出資料 (張量),其中 HardSwish 函數 y = x * max(0, min(1, alpha * x + beta)) = x * HardSigmoid<alpha, beta>(x),其中 alpha = 1/6 且 beta = 0.5,會逐元素應用於該張量。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 描述
X 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量

結果

結果 描述
Y 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量

onnx.Hardmax (ONNXHardmaxOp)

ONNX Hardmax 運算

此運算符會針對給定的輸入計算 hardmax 值

Hardmax(輸入中的元素, 軸) = 如果該元素是沿著指定軸的第一個最大值,則為 1,否則為 0

"axis" 屬性表示執行 Hardmax 的維度。輸出張量具有相同的形狀,並包含相應輸入的 Hardmax 值。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
::mlir::IntegerAttr64 位元帶符號整數屬性

運算元

運算元 描述
輸入 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型數值張量

結果

結果 描述
輸出 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型數值張量

onnx.Identity (ONNXIdentityOp)

ONNX Identity 運算

Identity 運算符

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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

介面: ConditionallySpeculatableHasOnnxSubgraphOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)ResultTypeInferenceOpInterfaceShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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 個元素,也可以每個輸入特徵都有一個元素。
換句話說,如果輸入張量的形狀為 [*,F],則屬性陣列的長度可能是 1 或 F。如果為 1,則它會沿著最後一個維度廣播並應用於每個特徵。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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 實例正規化運算

執行論文 https://arxiv.org/abs/1607.08022 中描述的實例正規化。

y = scale * (x - mean) / sqrt(variance + epsilon) + B,其中 mean 和 variance 是針對每個實例、每個通道計算的。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 描述
X bfloat16 類型值張量,或 16 位元浮點值張量,或 32 位元浮點值張量,或 64 位元浮點值張量,或 f8E4M3FN 類型值張量,或 f8E4M3FNUZ 類型值張量,或 f8E5M2 類型值張量,或 f8E5M2FNUZ 類型值張量

結果

結果 描述
Y 1 位元無號整數值張量

onnx.LRN (ONNXLRNOp)

ONNX LRN 運算

AlexNet 論文中提出的局部回應正規化。它對局部輸入區域進行正規化。局部區域是跨通道定義的。對於形狀為 (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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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 運算

計算單層 LSTM。此運算符通常透過某些自訂實作(例如 CuDNN)來支援。

符號

激活函數

注意:以下為可選

方程式(預設:f=Sigmoid、g=Tanh、h=Tanh)

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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 位元無符號整數值張量或無類型
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 運算

將輸入張量中的每個元素映射到另一個值。
此映射由兩個平行屬性 ‘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]。
由於此運算子是一對一映射,因此其輸入和輸出形狀相同。請注意,只能設定 ‘keys_
’/‘values_’ 其中之一。
對於金鑰查找,會使用位元比較,因此即使浮點數 NaN 也可以映射到 ‘values_
’ 屬性中的值。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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 層正規化運算

這是 ONNX 中定義為函數的層正規化。整體計算可以分成兩個階段。第一階段是標準化,使正規化的元素具有零均值和單位變異數。標準化所需的計算可以用以下方程式描述。 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, ..., X 的秩 - 1]。變數 VarStdDev 分別代表變異數和標準差。第二個輸出是 Mean,最後一個輸出是 InvStdDev。根據 stash_type 屬性,實際計算必須以不同的浮點數精確度進行。例如,如果 stash_type 為 1,則此運算子會將所有輸入變數轉換為 32 位元浮點數,執行計算,最後將 Normalized 轉換回 X 的原始類型。第二階段接著使用 NormalizedScaled = Mul(Normalized, Scale) Y = Add(NormalizedScaled, B) 縮放和偏移第一階段的結果。第二階段不依賴 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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
::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 類型值張量或無類型
InvStdDev 32 位元浮點值張量或 bfloat16 類型值張量或無類型

onnx.LayoutTransform (ONNXLayoutTransformOp)

在不同版面配置格式之間轉換資料的運算

將張量從一個版面配置轉換為另一個版面配置的運算。版面配置由屬性定義,即 target_layout,這允許此運算與任意版面配置(例如,用於加速器的版面配置)一起使用。

target_layout 是可選的。如果未指定,則輸入張量將轉換為不具有版面配置的正規張量。

如果 target_layout 與輸入的版面配置相同,則此運算將透過規範化變成無運算。

輸入和輸出張量必須具有相同的形狀。

此運算不是標準的一部分,並且新增用於協助 onnx-mlir。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
target_layout::mlir::Attribute版面配置屬性

運算元

運算元 描述
資料 16 位元浮點數或 32 位元浮點值張量

結果

結果 描述
輸出 16 位元浮點數或 32 位元浮點值張量

onnx.LeakyRelu (ONNXLeakyReluOp)

ONNX LeakyRelu 運算

LeakyRelu 接受輸入資料(張量)和引數 alpha,並產生一個輸出資料(張量),其中函數 `f(x) = alpha * x for x < 0`,`f(x) = x for x >= 0`,以逐元素方式應用於資料張量。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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 線性分類器運算

線性分類器

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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 線性迴歸運算

廣義線性迴歸評估。
如果 targets 設定為 1(預設),則執行單變量迴歸。
如果 targets 設定為 M,則必須以序列形式傳入 M 組係數,並且對於每個輸入 n (共 N 個),將輸出 M 個結果。
係數陣列的長度為 n,並且每個目標的係數都是連續的。截距是可選的,但如果提供,則必須與目標數量相符。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 描述
輸入 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型數值張量

結果

結果 描述
輸出 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型數值張量

onnx.LogSoftmax (ONNXLogSoftmaxOp)

ONNX LogSoftmax 運算

此運算子計算給定輸入的 softmax 值的對數。

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

"axis" 屬性表示執行 LogSoftmax 的維度。輸出張量具有相同的形狀,並包含對應輸入的 LogSoftmax 值。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
::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) 在主體中建立的值無法在封閉範圍內存取,除非使用上述機制。

請注意,此運算子的語意支援「對角」或「波前」執行。(請參閱此處的步驟 3,以取得範例:https://devblogs.nvidia.com/optimizing-recurrent-neural-networks-cudnn-5/)。前端應將多層 RNN 發射為一系列 While 運算子(時間是內部迴圈維度),每個連續層消耗前一層的 scan_outputs,可能經過幾個逐點運算子(例如,dropout、殘差連接、線性層)。

子圖(由迴圈節點產生)的輸入/輸出匹配是基於順序而不是名稱。實作會根據此順序找出名稱。

特徵:AlwaysSpeculatableImplTrait

介面: ConditionallySpeculatableHasOnnxSubgraphOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)ResultTypeInferenceOpInterfaceShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 描述
M 64 位元無正負號整數值張量或無類型
cond 1 位元無號整數值或無類型的張量
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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
::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_UPPERSAME_LOWER,則填補形狀將如下

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

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 描述
A 8 位元無號整數值張量或 8 位元無正負號整數值張量
B 8 位元無號整數值張量或 8 位元無正負號整數值張量
a_zero_point 8 位元無號整數值張量或 8 位元無正負號整數值張量或無類型
b_zero_point 8 位元無號整數值張量或 8 位元無正負號整數值張量或無類型

結果

結果 描述
Y 32 位元無號整數值張量

onnx.MatMul (ONNXMatMulOp)

ONNX MatMul 運算

表現得像 numpy.matmul 的矩陣乘積。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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.dev.org.tw/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://tensorflow.dev.org.tw/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_UPPERSAME_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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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 位元無正負號整數值張量或無類型

onnx.MaxPoolSingleOut (ONNXMaxPoolSingleOutOp)

ONNX 最大池化運算,具有單一輸出。

ONNX 最大池化運算,具有單一輸出。如需最大池化語意的完整描述,請參閱 ONNXMaxPoolOp。

此運算不是標準的一部分,並且新增用於協助 onnx-mlir。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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 任何型別值或任何型別值張量的記憶體參考

結果

結果 描述
o_Y 任何型別值或任何型別值張量的記憶體參考

onnx.MaxRoiPool (ONNXMaxRoiPoolOp)

ONNX MaxRoiPool 運算

ROI 最大池化消耗輸入張量 X 和感興趣區域 (RoI),以在每個 RoI 上套用最大池化,從而產生形狀為 (num_rois, channels, pooled_shape[0], pooled_shape[1]) 的輸出 4D 張量。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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 運算的部分反向。此運算子的輸入資訊通常來自 MaxPool 運算子的輸出資訊。第一個輸入張量 X 是需要進行反池化的張量,它通常是 MaxPool 的池化張量(第一個輸出)。第二個輸入張量 I 包含與第一個輸入張量 X 中的元素對應的(局部最大)元素的索引。輸入張量 I 通常是 MaxPool 運算子的第二個輸出。第三個(可選)輸入是指定反池化運算的輸出大小的張量。

MaxUnpool 旨在執行 MaxPool 運算的「部分」反向。「部分」是因為 MaxPool 原始輸入的所有非最大值在 MaxUnpool 運算子的輸出中都會設定為零。池化反池化運算的結果應會返回反池化運算子的原始輸入。

MaxUnpool 可以為多個輸入大小產生相同的輸出大小,這使得反池化運算含糊不清。第三個輸入引數 output_size 旨在消除運算的含糊性,並產生已知/可預測大小的輸出張量。

除了輸入之外,MaxUnpool 還接受三個屬性,即 kernel_shape、strides 和 pads,這些屬性定義了精確的反池化運算。這些屬性通常與反池化運算嘗試反轉的相應池化運算具有相同的值。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
kernel_shape::mlir::ArrayAttr64 位元整數陣列屬性
pads::mlir::ArrayAttr64 位元整數陣列屬性
strides::mlir::ArrayAttr64 位元整數陣列屬性

運算元

運算元 描述
X 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量
I 64 位元無號整數值張量
output_shape 64 位元無正負號整數值張量或無類型

結果

結果 描述
輸出 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量

onnx.Mean (ONNXMeanOp)

ONNX Mean 運算

每個輸入張量的逐元素平均值(支援 Numpy 式廣播)。所有輸入和輸出都必須具有相同的資料類型。此運算子支援多方向(即,Numpy 式)廣播;如需更多詳細資訊,請查看 文件

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 描述
data_0 16 位元浮點數值張量、32 位元浮點數值張量、64 位元浮點數值張量或 bfloat16 類型值的張量的變數

結果

結果 描述
mean 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型數值張量

onnx.MeanVarianceNormalization (ONNXMeanVarianceNormalizationOp)

ONNX MeanVarianceNormalization 運算

平均變異數正規化函數:使用公式 (X-EX)/sqrt(E(X-EX)^2) 對輸入張量 X 執行平均變異數正規化

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
axes::mlir::ArrayAttr64 位元整數陣列屬性

運算元

運算元 描述
X 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型數值張量

結果

結果 描述
Y 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型數值張量

onnx.MelWeightMatrix (ONNXMelWeightMatrixOp)

ONNX MelWeightMatrix 運算

產生一個 MelWeightMatrix,可用於將包含線性採樣頻譜(來自 DFT 或 STFT)的張量,基於梅爾尺度上的 [lower_edge_hertz, upper_edge_hertz] 範圍,重新加權為 num_mel_bins 個頻率資訊。此函數根據以下公式,以赫茲為單位定義梅爾尺度:

mel(f) = 2595 * log10(1 + f/700)

在返回的矩陣中,所有三角形(濾波器組)的峰值為 1.0。

返回的 MelWeightMatrix 可用於右乘線性尺度頻譜值(例如,STFT 量值)的形狀為 [frames, num_spectrogram_bins] 的頻譜圖 S,以生成形狀為 [frames, num_mel_bins] 的「梅爾頻譜圖」M。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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 最小值運算

每個輸入張量的元素最小值(支援 Numpy 式廣播)。所有輸入和輸出必須具有相同的資料類型。此運算子支援多向(即 Numpy 式)廣播;有關更多詳細資訊,請查看文件

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 描述
X 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量

結果

結果 描述
Y 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量

onnx.Mod (ONNXModOp)

ONNX Mod 運算

執行逐元素二元模數運算(支援 Numpy 式廣播)。餘數的符號與除數的符號相同。

Mod 運算子也可以像 C fmod() 或 numpy.fmod 一樣運作。在這種情況下,餘數的符號將與被除數的符號相同(與整數模數相反)。為了強制產生類似 numpy.fmod() 的行為,提供了一個 ‘fmod’ 屬性。此屬性預設設定為 0,導致行為與整數模數相同。將此屬性設定為 1 會導致餘數的計算方式與 numpy.fmod() 類似。

如果輸入類型為浮點數,則必須將 fmod 屬性設定為 1。

如果被除數為零,則結果將取決於平台。

此運算子支援多向 (即 Numpy 式) 廣播;如需更多詳細資訊,請查看 文件

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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 動量運算

計算具有動量的隨機梯度更新的一次迭代。此運算子可以執行多個張量變數的優化。

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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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 多項式運算

根據每個可能結果的機率,從多項式分佈生成樣本張量。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
dtype::mlir::IntegerAttr64 位元帶符號整數屬性
sample_size::mlir::IntegerAttr64 位元帶符號整數屬性
seed::mlir::FloatAttr32 位元浮點屬性

運算元

運算元 描述
輸入 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量

結果

結果 描述
輸出 32 位元無號整數值張量或 64 位元無號整數值張量

onnx.Neg (ONNXNegOp)

ONNX Neg 運算

Neg 接受一個輸入資料(張量) 並產生一個輸出資料 (張量),其中每個元素的符號反轉,y = -x,會逐元素應用於張量。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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 運算子計算(加權)負對數概似損失。其 "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 個類別之一),或者可能包含 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].

當目標值等於 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.dev.org.tw/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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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 非最大值抑制運算

篩選出與先前選取的方塊具有高交集聯合 (IOU) 重疊的方塊。移除分數低於 score_threshold 的邊界方塊。邊界方塊格式由屬性 center_point_box 指示。請注意,此演算法與座標系統中的原點位置無關,更廣泛地說,它對於座標系統的正交變換和平移是不變的;因此,座標系統的平移或反射會導致演算法選取相同的方塊。selected_indices 輸出是一組整數,索引到邊界方塊的輸入集合中,表示選取的方塊。然後可以使用 Gather 或 GatherND 運算取得與選取索引對應的邊界方塊座標。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
center_point_box::mlir::IntegerAttr64 位元帶符號整數屬性

運算元

運算元 描述
boxes 32 位元浮點數值張量
scores 32 位元浮點數值張量
max_output_boxes_per_class 64 位元無正負號整數值張量或無類型
iou_threshold 32 位元浮點數值張量或 none 類型
score_threshold 32 位元浮點數值張量或 none 類型

結果

結果 描述
selected_indices 64 位元無號整數值張量

onnx.NonZero (ONNXNonZeroOp)

ONNX 非零運算

傳回非零元素的索引(以行優先順序 - 按維度)。NonZero 的行為類似於 numpy.nonzero:https://scipy-docs.dev.org.tw/doc/numpy/reference/generated/numpy.nonzero.html,但對於純量輸入,NonZero 產生輸出形狀 (0, N) 而非 (1, N),這與 Numpy 的行為不同。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
value::mlir::UnitAttr單位屬性

結果

結果 描述
none_val none 類型

onnx.Normalizer (ONNXNormalizerOp)

ONNX 正規化器運算

正規化輸入。有三種正規化模式,它們使用逐元素中綴運算子 '/' 和 '^' 以及張量範圍函數 '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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
norm::mlir::StringAttr字串屬性

運算元

運算元 描述
X 32 位元浮點數值張量或 64 位元浮點數值張量或 64 位元無號整數值張量或 32 位元無號整數值張量

結果

結果 描述
Y 32 位元浮點數值張量

onnx.Not (ONNXNotOp)

ONNX Not 運算

傳回輸入張量的逐元素否定。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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] 的張量。
此運算子假設每個輸入特徵都來自同一組類別。
如果輸入是浮點數、int32 或雙精度數的張量,則資料將轉換為整數,並且 cats_int64s 類別清單將用於查詢。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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 運算

根據輸入產生獨熱張量。「indices」輸入張量中的索引值表示的位置將具有「on_value」,而其他位置在輸出張量中將具有「off_value」,其中「on_value」和「off_value」指定為必要輸入引數「values」的一部分,它是格式為 [off_value, on_value] 的雙元素張量。輸出張量的等級將比輸入張量的等級大 1。額外維度用於獨熱表示。額外維度將插入到「axis」指定的位置。如果未指定「axis」,則額外維度將插入為最內部的維度,即 axis=-1。額外維度的大小由必要的純量輸入「depth」指定。輸出張量的類型與「values」輸入的類型相同。「indices」輸入張量中任何值超出範圍 [-depth, depth-1] 的項目,都會導致在輸出張量中所有值為「off_value」的獨熱表示。

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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
::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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 描述
輸入 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 位元浮點數元素的複數型別張量的選項型別或 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 位元浮點數元素的複數型別張量的序列型別

結果

結果 描述
輸出 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.OptionalHasElement (ONNXOptionalHasElementOp)

ONNX OptionalHasElement 運算

如果 (1) 輸入為選項型別且包含元素,或 (2) 輸入為張量或序列型別,則傳回 true。如果未提供輸入或輸入為空的選項型別,則此運算會傳回 false。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 描述
輸入 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 位元浮點數元素的複數型別張量的選項型別或 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 位元浮點數元素的複數型別張量的序列型別或 none 型別

結果

結果 描述
輸出 1 位元無號整數值張量

onnx.Optional (ONNXOptionalOp)

ONNX Optional 運算

建構一個選項型別值,其中包含由屬性指定的某種型別的空選項,或包含輸入元素的非空值。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
型別::mlir::TypeAttr任何類型屬性

運算元

運算元 描述
輸入 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 位元浮點數元素的複數型別張量的序列型別或 none 型別

結果

結果 描述
輸出 可選類型 (OptType) 的序列類型 (SeqType),其元素為 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.Or (ONNXOrOp)

ONNX 或運算

傳回對輸入張量 AB 執行逐元素邏輯 or 運算後產生的張量(支援 NumPy 風格的廣播)。

此運算子支援多向 (即 Numpy 式) 廣播;如需更多詳細資訊,請查看 文件

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 描述
A 1 位元無號整數值張量
B 1 位元無號整數值張量

結果

結果 描述
C 1 位元無號整數值張量

onnx.PRelu (ONNXPReluOp)

ONNX PRelu 運算

PRelu 接受輸入資料(張量)和斜率張量作為輸入,並產生一個輸出資料(張量),其中函數 `f(x) = slope * x for x < 0`,`f(x) = x for x >= 0` 逐元素應用於資料張量。此運算子支援**單向廣播**(張量斜率應可單向廣播到輸入張量 X);有關詳細資訊,請查看 [該文件](Broadcasting.md)。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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)。

支援的三種 modes 為(類似於 numpy.pad 支援的相應模式):

1) constant(預設) - 使用 constant_value 指定的給定常數值進行填充(預設為 0、空字串或 False)

2) reflect - 使用向量在每個軸上的第一個和最後一個值上鏡像的反射進行填充

3) edge - 使用陣列的邊緣值進行填充

4) wrap - 環繞式填充,如同資料張量形成環面

範例 1(constant 模式)

在第二個維度的開頭插入 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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
mode::mlir::StringAttr字串屬性

運算元

運算元 描述
資料 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 位元浮點數元素的複數類型值的張量,或無類型
axes 32 位元無正負號整數值張量或 64 位元無正負號整數值張量或無類型

結果

結果 描述
輸出 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)。

支援的三種 modes 為(類似於 numpy.pad 支援的相應模式):

1) constant(預設) - 使用 constant_value 指定的給定常數值進行填充(預設為 0)

2) reflect - 使用向量在每個軸上的第一個和最後一個值上鏡像的反射進行填充

3) edge - 使用陣列的邊緣值進行填充

範例 1(constant 模式):在第二個維度的開頭插入 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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
mode::mlir::StringAttr字串屬性

運算元

運算元 描述
資料 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)。

支援的三種 modes 為(類似於 numpy.pad 支援的相應模式):

1) constant(預設) - 使用 constant_value 指定的給定常數值進行填充(預設為 0、空字串或 False)

2) reflect - 使用向量在每個軸上的第一個和最後一個值上鏡像的反射進行填充

3) edge - 使用陣列的邊緣值進行填充

範例 1(constant 模式):在第二個維度的開頭插入 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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
mode::mlir::StringAttr字串屬性

運算元

運算元 描述
資料 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 位元浮點數元素的複數類型值的張量,或無類型

結果

結果 描述
輸出 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)。

支援的三種 modes 為(類似於 numpy.pad 支援的相應模式):

1) constant(預設) - 使用 constant_value 指定的給定常數值進行填充(預設為 0、空字串或 False)

2) reflect - 使用向量在每個軸上的第一個和最後一個值上鏡像的反射進行填充

3) edge - 使用陣列的邊緣值進行填充

範例 1(constant 模式)

在第二個維度的開頭插入 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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
mode::mlir::StringAttr字串屬性

運算元

運算元 描述
資料 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 位元浮點數元素的複數類型值的張量,或無類型
axes 32 位元無正負號整數值張量或 64 位元無正負號整數值張量或無類型

結果

結果 描述
輸出 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 bfloat16 類型數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或字串類型數值張量或 1 位元無號整數數值張量或具有 32 位元浮點元素值的複數類型張量或具有 64 位元浮點元素值的複數類型張量

onnx.PadV2 (ONNXPadV2Op)

ONNX Pad 運算

給定 data 張量、填充、模式和值。範例:在第二個維度的開頭插入 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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
mode::mlir::StringAttr字串屬性
pads::mlir::ArrayAttr64 位元整數陣列屬性
value::mlir::FloatAttr32 位元浮點屬性

運算元

運算元 描述
資料 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量

結果

結果 描述
輸出 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量

onnx.Pow (ONNXPowOp)

ONNX Pow 運算

Pow 接受輸入資料(張量)和指數張量,並產生一個輸出資料(張量),其中函數 `f(x) = x^exponent` 逐元素應用於資料張量。此運算子支援**多向(即 NumPy 風格)廣播**;有關詳細資訊,請查看 [該文件](Broadcasting.md)。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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 運算以列印其輸入運算元的類型簽章

列印運算的輸入運算元的類型簽章。此運算提早引入,以便保留原始 ONNX 運算的名稱。

此運算不是標準的一部分,並且新增用於協助 onnx-mlir。

屬性

屬性MLIR 型別描述
op_name::mlir::StringAttr字串屬性

運算元

運算元 描述
輸入 任何類型值的張量的變數或無類型

onnx.QLinearConv (ONNXQLinearConvOp)

ONNX QLinearConv 運算

卷積運算子使用量化的輸入張量、其比例和零點、量化的篩選器、其比例和零點,以及輸出的比例和零點,並計算量化的輸出。每個比例和零點對必須具有相同的形狀。這表示它們必須是純量(每個張量)或一維張量(每個輸出通道)。每個輸入或輸出及其相關的零點必須具有相同的類型。當存在偏差時,必須使用比例 = 輸入比例 * 權重比例量化,且零點為 0。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
auto_pad::mlir::StringAttr字串屬性
dilations::mlir::ArrayAttr64 位元整數陣列屬性
group::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 位元無符號整數值張量或無類型

結果

結果 描述
y 8 位元無號整數值張量或 8 位元無正負號整數值張量

onnx.QLinearMatMul (ONNXQLinearMatMulOp)

ONNX QLinearMatMul 運算

行為類似 numpy.matmul 的矩陣乘積。它使用兩個量化的輸入張量、其比例和零點、輸出的比例和零點,並計算量化的輸出。量化公式為 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],對於每列量化,則為形狀為 [v_1, v_2, ..., v_K] 的 K 個元素的向量。如果輸入是形狀為 [D1, D2, M, K] 的 N 維張量,則對於每行量化,零點和比例張量的形狀可能為 [D1, D2, M, 1],對於每列量化,則為 [D1, D2, 1, K]。生產絕不能溢位,並且累計如果只在 32 位元內,則可能溢位。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
::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 類型值的張量,或無類型

結果

結果 描述
y 8 位元無號整數值的張量,或 8 位元無號整數值的張量,或 f8E4M3FN 類型值的張量,或 f8E4M3FNUZ 類型值的張量,或 f8E5M2 類型值的張量,或 f8E5M2FNUZ 類型值的張量

onnx.RMSLayerNormalization (ONNXRMSLayerNormalizationOp)

ONNX RMSLayerNormalization 運算

這是在 ONNX 中定義為函數的 RMS 層正規化。整體計算可以分為兩個階段。第一階段是近似的標準化,使正規化後的元素具有零均值和單位變異數。請參閱這篇論文中的方程式 (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 位元浮點數,執行計算,最後將 Normalized 轉換回 X 的原始類型。第二階段然後使用 NormalizedScaled = Mul(Normalized, Scale) Y = Add(NormalizedScaled, B) 縮放和偏移第一階段的結果。第二階段不依賴於 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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
::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 類型值張量或無類型

onnx.RNN (ONNXRNNOp)

ONNX RNN 運算

計算單層簡單 RNN。此運算符通常透過某些自定義實現(例如 CuDNN)來支持。

符號

激活函數

注意:以下為可選

方程式 (預設:f=Tanh)

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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 位元無符號整數值張量或無類型
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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ResultTypeInferenceOpInterfaceShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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(不包括)。

range 輸出的元素數計算如下

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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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 接受一個輸入數據(張量) 並產生一個輸出資料 (張量),其中倒數 y = 1/x 逐元素應用於張量。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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 預設 keepdimsFalse 而不是 True

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
keepdims::mlir::IntegerAttr64 位元帶符號整數屬性
noop_with_empty_axes::mlir::IntegerAttr64 位元帶符號整數屬性

運算元

運算元 描述
資料 32 位元無號整數值張量或 64 位元無號整數值張量或 32 位元無正負號整數值張量或 64 位元無正負號整數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型值張量
axes 64 位元無正負號整數值張量或無類型

結果

結果 描述
縮減 32 位元無號整數值張量或 64 位元無號整數值張量或 32 位元無正負號整數值張量或 64 位元無正負號整數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型值張量

onnx.ReduceL1V13 (ONNXReduceL1V13Op)

ONNX ReduceL1 運算

計算沿提供的軸的輸入張量元素的 L1 範數。如果 keepdims 等於 1,則結果張量具有與輸入相同的秩。如果 keepdims 等於 0,則結果張量會將縮減的維度修剪掉。秩為零的輸入張量是有效的。對空值集合的縮減會產生 0。

上述行為類似於 numpy,但 numpy 預設 keepdimsFalse 而不是 True

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
axes::mlir::ArrayAttr64 位元整數陣列屬性
keepdims::mlir::IntegerAttr64 位元帶符號整數屬性

運算元

運算元 描述
資料 32 位元無號整數值張量或 64 位元無號整數值張量或 32 位元無正負號整數值張量或 64 位元無正負號整數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型值張量

結果

結果 描述
縮減 32 位元無號整數值張量或 64 位元無號整數值張量或 32 位元無正負號整數值張量或 64 位元無正負號整數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型值張量

onnx.ReduceL2 (ONNXReduceL2Op)

ONNX ReduceL2 運算

計算沿提供的軸的輸入張量元素的 L2 範數。如果 keepdims 等於 1,則結果張量具有與輸入相同的秩。如果 keepdims 等於 0,則結果張量會將縮減的維度修剪掉。秩為零的輸入張量是有效的。對空值集合的縮減會產生 0。

上述行為類似於 numpy,但 numpy 預設 keepdimsFalse 而不是 True

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
keepdims::mlir::IntegerAttr64 位元帶符號整數屬性
noop_with_empty_axes::mlir::IntegerAttr64 位元帶符號整數屬性

運算元

運算元 描述
資料 32 位元無號整數值張量或 64 位元無號整數值張量或 32 位元無正負號整數值張量或 64 位元無正負號整數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型值張量
axes 64 位元無正負號整數值張量或無類型

結果

結果 描述
縮減 32 位元無號整數值張量或 64 位元無號整數值張量或 32 位元無正負號整數值張量或 64 位元無正負號整數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型值張量

onnx.ReduceL2V13 (ONNXReduceL2V13Op)

ONNX ReduceL2 運算

計算沿提供的軸的輸入張量元素的 L2 範數。如果 keepdims 等於 1,則結果張量具有與輸入相同的秩。如果 keepdims 等於 0,則結果張量會將縮減的維度修剪掉。秩為零的輸入張量是有效的。對空值集合的縮減會產生 0。

上述行為類似於 numpy,但 numpy 預設 keepdimsFalse 而不是 True

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
axes::mlir::ArrayAttr64 位元整數陣列屬性
keepdims::mlir::IntegerAttr64 位元帶符號整數屬性

運算元

運算元 描述
資料 32 位元無號整數值張量或 64 位元無號整數值張量或 32 位元無正負號整數值張量或 64 位元無正負號整數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型值張量

結果

結果 描述
縮減 32 位元無號整數值張量或 64 位元無號整數值張量或 32 位元無正負號整數值張量或 64 位元無正負號整數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型值張量

onnx.ReduceLogSumExp (ONNXReduceLogSumExpOp)

ONNX ReduceLogSumExp 運算

計算沿提供的軸的輸入張量元素的對數和指數。如果 keepdims 等於 1,則結果張量具有與輸入相同的秩。如果 keepdims 等於 0,則結果張量會將縮減的維度修剪掉。秩為零的輸入張量是有效的。對空值集合的縮減會產生負無窮大(如果資料類型支援)或在其他情況下未定義。

上述行為類似於 numpy,但 numpy 預設 keepdimsFalse 而不是 True

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
keepdims::mlir::IntegerAttr64 位元帶符號整數屬性
noop_with_empty_axes::mlir::IntegerAttr64 位元帶符號整數屬性

運算元

運算元 描述
資料 32 位元無號整數值張量或 64 位元無號整數值張量或 32 位元無正負號整數值張量或 64 位元無正負號整數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型值張量
axes 64 位元無正負號整數值張量或無類型

結果

結果 描述
縮減 32 位元無號整數值張量或 64 位元無號整數值張量或 32 位元無正負號整數值張量或 64 位元無正負號整數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型值張量

onnx.ReduceLogSumExpV13 (ONNXReduceLogSumExpV13Op)

ONNX ReduceLogSumExp 運算

計算沿提供的軸的輸入張量元素的對數和指數。如果 keepdims 等於 1,則結果張量具有與輸入相同的秩。如果 keepdims 等於 0,則結果張量會將縮減的維度修剪掉。秩為零的輸入張量是有效的。對空值集合的縮減會產生負無窮大(如果資料類型支援)或在其他情況下未定義。

上述行為類似於 numpy,但 numpy 預設 keepdimsFalse 而不是 True

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
axes::mlir::ArrayAttr64 位元整數陣列屬性
keepdims::mlir::IntegerAttr64 位元帶符號整數屬性

運算元

運算元 描述
資料 32 位元無號整數值張量或 64 位元無號整數值張量或 32 位元無正負號整數值張量或 64 位元無正負號整數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型值張量

結果

結果 描述
縮減 32 位元無號整數值張量或 64 位元無號整數值張量或 32 位元無正負號整數值張量或 64 位元無正負號整數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型值張量

onnx.ReduceLogSum (ONNXReduceLogSumOp)

ONNX ReduceLogSum 運算

計算沿提供的軸的輸入張量元素的對數和。如果 keepdims 等於 1,則結果張量具有與輸入相同的秩。如果 keepdims 等於 0,則結果張量會將縮減的維度修剪掉。秩為零的輸入張量是有效的。對空值集合的縮減會產生負無窮大(如果資料類型支援)或在其他情況下未定義。

上述行為類似於 numpy,但 numpy 預設 keepdimsFalse 而不是 True

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
keepdims::mlir::IntegerAttr64 位元帶符號整數屬性
noop_with_empty_axes::mlir::IntegerAttr64 位元帶符號整數屬性

運算元

運算元 描述
資料 32 位元無號整數值張量或 64 位元無號整數值張量或 32 位元無正負號整數值張量或 64 位元無正負號整數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型值張量
axes 64 位元無正負號整數值張量或無類型

結果

結果 描述
縮減 32 位元無號整數值張量或 64 位元無號整數值張量或 32 位元無正負號整數值張量或 64 位元無正負號整數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型值張量

onnx.ReduceLogSumV13 (ONNXReduceLogSumV13Op)

ONNX ReduceLogSum 運算

計算沿提供的軸的輸入張量元素的對數和。如果 keepdims 等於 1,則結果張量具有與輸入相同的秩。如果 keepdims 等於 0,則結果張量會將縮減的維度修剪掉。秩為零的輸入張量是有效的。對空值集合的縮減會產生負無窮大(如果資料類型支援)或在其他情況下未定義。

上述行為類似於 numpy,但 numpy 預設 keepdimsFalse 而不是 True

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
axes::mlir::ArrayAttr64 位元整數陣列屬性
keepdims::mlir::IntegerAttr64 位元帶符號整數屬性

運算元

運算元 描述
資料 32 位元無號整數值張量或 64 位元無號整數值張量或 32 位元無正負號整數值張量或 64 位元無正負號整數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型值張量

結果

結果 描述
縮減 32 位元無號整數值張量或 64 位元無號整數值張量或 32 位元無正負號整數值張量或 64 位元無正負號整數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型值張量

onnx.ReduceMax (ONNXReduceMaxOp)

ONNX ReduceMax 運算

計算沿提供的軸的輸入張量元素的最大值。如果 keepdims 等於 1,則結果張量具有與輸入相同的秩。如果 keepdims 等於 0,則結果張量會將縮減的維度修剪掉。秩為零的輸入張量是有效的。對空值集合的縮減會產生負無窮大(如果資料類型支援)或在其他情況下資料類型的最小值。

如果輸入資料類型是布林值,則比較應考慮 False < True

上述行為類似於 numpy,但 numpy 預設 keepdimsFalse 而不是 True

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
keepdims::mlir::IntegerAttr64 位元帶符號整數屬性
noop_with_empty_axes::mlir::IntegerAttr64 位元帶符號整數屬性

運算元

運算元 描述
資料 32 位元無號整數值張量、64 位元無號整數值張量、32 位元無符號整數值張量、64 位元無符號整數值張量、16 位元浮點數值張量、32 位元浮點數值張量、64 位元浮點數值張量、bfloat16 類型值張量、8 位元無號整數值張量、8 位元無符號整數值張量或 1 位元無符號整數值張量
axes 64 位元無正負號整數值張量或無類型

結果

結果 描述
縮減 32 位元無號整數值張量、64 位元無號整數值張量、32 位元無符號整數值張量、64 位元無符號整數值張量、16 位元浮點數值張量、32 位元浮點數值張量、64 位元浮點數值張量、bfloat16 類型值張量、8 位元無號整數值張量、8 位元無符號整數值張量或 1 位元無符號整數值張量

onnx.ReduceMaxV13 (ONNXReduceMaxV13Op)

ONNX ReduceMax 運算

計算沿提供的軸的輸入張量元素的最大值。如果 keepdims 等於 1,則結果張量具有與輸入相同的秩。如果 keepdims 等於 0,則結果張量會將縮減的維度修剪掉。秩為零的輸入張量是有效的。對空值集合的縮減會產生負無窮大(如果資料類型支援)或在其他情況下資料類型的最小值。

上述行為類似於 numpy,但 numpy 預設 keepdimsFalse 而不是 True

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
axes::mlir::ArrayAttr64 位元整數陣列屬性
keepdims::mlir::IntegerAttr64 位元帶符號整數屬性

運算元

運算元 描述
資料 32 位元無號整數值張量、64 位元無號整數值張量、32 位元無符號整數值張量、64 位元無符號整數值張量、16 位元浮點數值張量、32 位元浮點數值張量、64 位元浮點數值張量、bfloat16 類型值張量、8 位元無號整數值張量或 8 位元無符號整數值張量

結果

結果 描述
縮減 32 位元無號整數值張量、64 位元無號整數值張量、32 位元無符號整數值張量、64 位元無符號整數值張量、16 位元浮點數值張量、32 位元浮點數值張量、64 位元浮點數值張量、bfloat16 類型值張量、8 位元無號整數值張量或 8 位元無符號整數值張量

onnx.ReduceMaxV18 (ONNXReduceMaxV18Op)

ONNX ReduceMax 運算

計算沿提供的軸的輸入張量元素的最大值。如果 keepdims 等於 1,則結果張量具有與輸入相同的秩。如果 keepdims 等於 0,則結果張量會將縮減的維度修剪掉。秩為零的輸入張量是有效的。對空值集合的縮減會產生負無窮大(如果資料類型支援)或在其他情況下資料類型的最小值。

上述行為類似於 numpy,但 numpy 預設 keepdimsFalse 而不是 True

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
keepdims::mlir::IntegerAttr64 位元帶符號整數屬性
noop_with_empty_axes::mlir::IntegerAttr64 位元帶符號整數屬性

運算元

運算元 描述
資料 32 位元無號整數值張量、64 位元無號整數值張量、32 位元無符號整數值張量、64 位元無符號整數值張量、16 位元浮點數值張量、32 位元浮點數值張量、64 位元浮點數值張量、bfloat16 類型值張量、8 位元無號整數值張量或 8 位元無符號整數值張量
axes 64 位元無正負號整數值張量或無類型

結果

結果 描述
縮減 32 位元無號整數值張量、64 位元無號整數值張量、32 位元無符號整數值張量、64 位元無符號整數值張量、16 位元浮點數值張量、32 位元浮點數值張量、64 位元浮點數值張量、bfloat16 類型值張量、8 位元無號整數值張量或 8 位元無符號整數值張量

onnx.ReduceMean (ONNXReduceMeanOp)

ONNX ReduceMean 運算

沿著提供的軸計算輸入張量元素的平均值。如果 keepdims 等於 1,則結果張量與輸入張量具有相同的秩。如果 keepdims 等於 0,則結果張量會修剪縮減的維度。秩為零的輸入張量是有效的。在空值集上進行縮減會產生未定義的結果。

上述行為類似於 numpy,但 numpy 預設 keepdimsFalse 而不是 True

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
keepdims::mlir::IntegerAttr64 位元帶符號整數屬性
noop_with_empty_axes::mlir::IntegerAttr64 位元帶符號整數屬性

運算元

運算元 描述
資料 32 位元無號整數值張量或 64 位元無號整數值張量或 32 位元無正負號整數值張量或 64 位元無正負號整數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型值張量
axes 64 位元無正負號整數值張量或無類型

結果

結果 描述
縮減 32 位元無號整數值張量或 64 位元無號整數值張量或 32 位元無正負號整數值張量或 64 位元無正負號整數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型值張量

onnx.ReduceMeanV13 (ONNXReduceMeanV13Op)

ONNX ReduceMean 運算

沿著提供的軸計算輸入張量元素的平均值。如果 keepdims 等於 1,則結果張量與輸入張量具有相同的秩。如果 keepdims 等於 0,則結果張量會修剪縮減的維度。秩為零的輸入張量是有效的。在空值集上進行縮減會產生未定義的結果。

上述行為類似於 numpy,但 numpy 預設 keepdimsFalse 而不是 True

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
axes::mlir::ArrayAttr64 位元整數陣列屬性
keepdims::mlir::IntegerAttr64 位元帶符號整數屬性

運算元

運算元 描述
資料 32 位元無號整數值張量或 64 位元無號整數值張量或 32 位元無正負號整數值張量或 64 位元無正負號整數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型值張量

結果

結果 描述
縮減 32 位元無號整數值張量或 64 位元無號整數值張量或 32 位元無正負號整數值張量或 64 位元無正負號整數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型值張量

onnx.ReduceMin (ONNXReduceMinOp)

ONNX ReduceMin 運算

沿著提供的軸計算輸入張量元素的最小值。如果 keepdims 等於 1,則結果張量與輸入張量具有相同的秩。如果 keepdims 等於 0,則結果張量會修剪縮減的維度。秩為零的輸入張量是有效的。在空值集上進行縮減會產生正無限大(如果資料類型支援)或資料類型的最大值。

如果輸入資料類型是布林值,則比較應考慮 False < True

上述行為類似於 numpy,但 numpy 預設 keepdimsFalse 而不是 True

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
keepdims::mlir::IntegerAttr64 位元帶符號整數屬性
noop_with_empty_axes::mlir::IntegerAttr64 位元帶符號整數屬性

運算元

運算元 描述
資料 32 位元無號整數值張量、64 位元無號整數值張量、32 位元無符號整數值張量、64 位元無符號整數值張量、16 位元浮點數值張量、32 位元浮點數值張量、64 位元浮點數值張量、bfloat16 類型值張量、8 位元無號整數值張量、8 位元無符號整數值張量或 1 位元無符號整數值張量
axes 64 位元無正負號整數值張量或無類型

結果

結果 描述
縮減 32 位元無號整數值張量、64 位元無號整數值張量、32 位元無符號整數值張量、64 位元無符號整數值張量、16 位元浮點數值張量、32 位元浮點數值張量、64 位元浮點數值張量、bfloat16 類型值張量、8 位元無號整數值張量、8 位元無符號整數值張量或 1 位元無符號整數值張量

onnx.ReduceMinV13 (ONNXReduceMinV13Op)

ONNX ReduceMin 運算

沿著提供的軸計算輸入張量元素的最小值。如果 keepdims 等於 1,則結果張量與輸入張量具有相同的秩。如果 keepdims 等於 0,則結果張量會修剪縮減的維度。秩為零的輸入張量是有效的。在空值集上進行縮減會產生正無限大(如果資料類型支援)或資料類型的最大值。

上述行為類似於 numpy,但 numpy 預設 keepdimsFalse 而不是 True

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
axes::mlir::ArrayAttr64 位元整數陣列屬性
keepdims::mlir::IntegerAttr64 位元帶符號整數屬性

運算元

運算元 描述
資料 32 位元無號整數值張量、64 位元無號整數值張量、32 位元無符號整數值張量、64 位元無符號整數值張量、16 位元浮點數值張量、32 位元浮點數值張量、64 位元浮點數值張量、bfloat16 類型值張量、8 位元無號整數值張量或 8 位元無符號整數值張量

結果

結果 描述
縮減 32 位元無號整數值張量、64 位元無號整數值張量、32 位元無符號整數值張量、64 位元無符號整數值張量、16 位元浮點數值張量、32 位元浮點數值張量、64 位元浮點數值張量、bfloat16 類型值張量、8 位元無號整數值張量或 8 位元無符號整數值張量

onnx.ReduceMinV18 (ONNXReduceMinV18Op)

ONNX ReduceMin 運算

沿著提供的軸計算輸入張量元素的最小值。如果 keepdims 等於 1,則結果張量與輸入張量具有相同的秩。如果 keepdims 等於 0,則結果張量會修剪縮減的維度。秩為零的輸入張量是有效的。在空值集上進行縮減會產生正無限大(如果資料類型支援)或資料類型的最大值。

上述行為類似於 numpy,但 numpy 預設 keepdimsFalse 而不是 True

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
keepdims::mlir::IntegerAttr64 位元帶符號整數屬性
noop_with_empty_axes::mlir::IntegerAttr64 位元帶符號整數屬性

運算元

運算元 描述
資料 32 位元無號整數值張量、64 位元無號整數值張量、32 位元無符號整數值張量、64 位元無符號整數值張量、16 位元浮點數值張量、32 位元浮點數值張量、64 位元浮點數值張量、bfloat16 類型值張量、8 位元無號整數值張量或 8 位元無符號整數值張量
axes 64 位元無正負號整數值張量或無類型

結果

結果 描述
縮減 32 位元無號整數值張量、64 位元無號整數值張量、32 位元無符號整數值張量、64 位元無符號整數值張量、16 位元浮點數值張量、32 位元浮點數值張量、64 位元浮點數值張量、bfloat16 類型值張量、8 位元無號整數值張量或 8 位元無符號整數值張量

onnx.ReduceProd (ONNXReduceProdOp)

ONNX ReduceProd 運算

沿著提供的軸計算輸入張量元素的乘積。如果 keepdims 等於 1,則結果張量與輸入張量具有相同的秩。如果 keepdims 等於 0,則結果張量會修剪縮減的維度。秩為零的輸入張量是有效的。在空值集上進行縮減會產生 1。

上述行為類似於 numpy,但 numpy 預設 keepdimsFalse 而不是 True

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
keepdims::mlir::IntegerAttr64 位元帶符號整數屬性
noop_with_empty_axes::mlir::IntegerAttr64 位元帶符號整數屬性

運算元

運算元 描述
資料 32 位元無號整數值張量或 64 位元無號整數值張量或 32 位元無正負號整數值張量或 64 位元無正負號整數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型值張量
axes 64 位元無正負號整數值張量或無類型

結果

結果 描述
縮減 32 位元無號整數值張量或 64 位元無號整數值張量或 32 位元無正負號整數值張量或 64 位元無正負號整數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型值張量

onnx.ReduceProdV13 (ONNXReduceProdV13Op)

ONNX ReduceProd 運算

沿著提供的軸計算輸入張量元素的乘積。如果 keepdims 等於 1,則結果張量與輸入張量具有相同的秩。如果 keepdims 等於 0,則結果張量會修剪縮減的維度。秩為零的輸入張量是有效的。在空值集上進行縮減會產生 1。

上述行為類似於 numpy,但 numpy 預設 keepdimsFalse 而不是 True

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
axes::mlir::ArrayAttr64 位元整數陣列屬性
keepdims::mlir::IntegerAttr64 位元帶符號整數屬性

運算元

運算元 描述
資料 32 位元無號整數值張量或 64 位元無號整數值張量或 32 位元無正負號整數值張量或 64 位元無正負號整數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型值張量

結果

結果 描述
縮減 32 位元無號整數值張量或 64 位元無號整數值張量或 32 位元無正負號整數值張量或 64 位元無正負號整數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型值張量

onnx.ReduceSum (ONNXReduceSumOp)

ONNX ReduceSum 運算

沿著提供的軸計算輸入張量元素的總和。如果 keepdims 等於 1,則結果張量與輸入張量具有相同的秩。如果 keepdims 等於 0,則結果張量會修剪縮減的維度。秩為零的輸入張量是有效的。在空值集上進行縮減會產生 0。

上述行為類似於 numpy,但 numpy 預設 keepdimsFalse 而不是 True

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
keepdims::mlir::IntegerAttr64 位元帶符號整數屬性
noop_with_empty_axes::mlir::IntegerAttr64 位元帶符號整數屬性

運算元

運算元 描述
資料 32 位元無號整數值張量或 64 位元無號整數值張量或 32 位元無正負號整數值張量或 64 位元無正負號整數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型值張量
axes 64 位元無正負號整數值張量或無類型

結果

結果 描述
縮減 32 位元無號整數值張量或 64 位元無號整數值張量或 32 位元無正負號整數值張量或 64 位元無正負號整數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型值張量

onnx.ReduceSumSquare (ONNXReduceSumSquareOp)

ONNX ReduceSumSquare 運算

沿著提供的軸計算輸入張量元素的平方和。如果 keepdims 等於 1,則結果張量與輸入張量具有相同的秩。如果 keepdims 等於 0,則結果張量會修剪縮減的維度。秩為零的輸入張量是有效的。在空值集上進行縮減會產生 0。

上述行為類似於 numpy,但 numpy 預設 keepdimsFalse 而不是 True

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
keepdims::mlir::IntegerAttr64 位元帶符號整數屬性
noop_with_empty_axes::mlir::IntegerAttr64 位元帶符號整數屬性

運算元

運算元 描述
資料 32 位元無號整數值張量或 64 位元無號整數值張量或 32 位元無正負號整數值張量或 64 位元無正負號整數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型值張量
axes 64 位元無正負號整數值張量或無類型

結果

結果 描述
縮減 32 位元無號整數值張量或 64 位元無號整數值張量或 32 位元無正負號整數值張量或 64 位元無正負號整數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型值張量

onnx.ReduceSumSquareV13 (ONNXReduceSumSquareV13Op)

ONNX ReduceSumSquare 運算

沿著提供的軸計算輸入張量元素的平方和。如果 keepdims 等於 1,則結果張量與輸入張量具有相同的秩。如果 keepdims 等於 0,則結果張量會修剪縮減的維度。秩為零的輸入張量是有效的。在空值集上進行縮減會產生 0。

上述行為類似於 numpy,但 numpy 預設 keepdimsFalse 而不是 True

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
axes::mlir::ArrayAttr64 位元整數陣列屬性
keepdims::mlir::IntegerAttr64 位元帶符號整數屬性

運算元

運算元 描述
資料 32 位元無號整數值張量或 64 位元無號整數值張量或 32 位元無正負號整數值張量或 64 位元無正負號整數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型值張量

結果

結果 描述
縮減 32 位元無號整數值張量或 64 位元無號整數值張量或 32 位元無正負號整數值張量或 64 位元無正負號整數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型值張量

onnx.ReduceSumV11 (ONNXReduceSumV11Op)

ONNX ReduceSum 運算

沿著提供的軸計算輸入張量元素的總和。如果 keepdims 等於 1,則結果張量與輸入張量具有相同的秩。如果 keepdims 等於 0,則結果張量會修剪縮減的維度。

上述行為類似於 numpy,但 numpy 預設 keepdims 為 False 而不是 True。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
axes::mlir::ArrayAttr64 位元整數陣列屬性
keepdims::mlir::IntegerAttr64 位元帶符號整數屬性

運算元

運算元 描述
資料 32 位元無號整數值張量、64 位元無號整數值張量、32 位元無符號整數值張量、64 位元無符號整數值張量、16 位元浮點數值張量、32 位元浮點數值張量或 64 位元浮點數值張量

結果

結果 描述
縮減 32 位元無號整數值張量、64 位元無號整數值張量、32 位元無符號整數值張量、64 位元無符號整數值張量、16 位元浮點數值張量、32 位元浮點數值張量或 64 位元浮點數值張量

onnx.Relu (ONNXReluOp)

ONNX Relu 運算

Relu 接收一個輸入資料(張量) 並產生一個輸出資料 (張量),其中整流線性函數 y = max(0, x) 會逐元素套用到張量。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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。第一個輸入是資料張量,第二個輸入是指定輸出形狀的形狀張量。它輸出重塑的張量。新形狀中最多一個維度可以是 -1。在這種情況下,該值是從張量的大小和剩餘維度推斷出來的。維度也可以是 0,在這種情況下,實際維度值保持不變(即從輸入張量取得)。如果設定了「allowzero」,且新形狀包含 0,則維度將明確設定為零(即不從輸入張量取得)。形狀(第二個輸入)可以是空形狀,這表示轉換為純量。輸入張量的形狀和輸出張量的形狀必須具有相同的元素數。

如果設定了屬性「allowzero」,則指定的形狀同時包含零值和 -1 是無效的,因為與 -1 對應的維度值無法唯一確定。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
allowzero::mlir::IntegerAttr64 位元帶符號整數屬性

運算元

運算元 描述
資料 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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
抗鋸齒::mlir::IntegerAttr64 位元帶符號整數屬性
axes::mlir::ArrayAttr64 位元整數陣列屬性
座標轉換模式::mlir::StringAttr字串屬性
立方係數 a::mlir::FloatAttr32 位元浮點屬性
排除外部::mlir::IntegerAttr64 位元帶符號整數屬性
外推值::mlir::FloatAttr32 位元浮點屬性
保持長寬比策略::mlir::StringAttr字串屬性
mode::mlir::StringAttr字串屬性
最近模式::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 位元無正負號整數值張量或無類型

結果

結果 描述
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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
座標轉換模式::mlir::StringAttr字串屬性
立方係數 a::mlir::FloatAttr32 位元浮點屬性
排除外部::mlir::IntegerAttr64 位元帶符號整數屬性
外推值::mlir::FloatAttr32 位元浮點屬性
mode::mlir::StringAttr字串屬性
最近模式::mlir::StringAttr字串屬性

運算元

運算元 描述
X 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或字串類型數值張量或 1 位元無號整數數值張量或具有 32 位元浮點元素值的複數類型張量或具有 64 位元浮點元素值的複數類型張量
roi 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量
縮放 32 位元浮點數值張量
尺寸 64 位元無正負號整數值張量或無類型

結果

結果 描述
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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
座標轉換模式::mlir::StringAttr字串屬性
立方係數 a::mlir::FloatAttr32 位元浮點屬性
排除外部::mlir::IntegerAttr64 位元帶符號整數屬性
外推值::mlir::FloatAttr32 位元浮點屬性
mode::mlir::StringAttr字串屬性
最近模式::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 位元無正負號整數值張量或無類型

結果

結果 描述
Y 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 bfloat16 類型數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或字串類型數值張量或 1 位元無號整數數值張量或具有 32 位元浮點元素值的複數類型張量或具有 64 位元浮點元素值的複數類型張量

onnx.ResizeV18 (ONNXResizeV18Op)

ONNX Resize 運算

調整輸入張量的大小。一般而言,它會將輸出張量中的每個值計算為輸入張量中鄰域(也稱為取樣位置)的加權平均值。輸出張量的每個維度值為
output_dimension = floor(input_dimension * (roi_end - roi_start) * scale)
如果未指定輸入「尺寸」。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
抗鋸齒::mlir::IntegerAttr64 位元帶符號整數屬性
axes::mlir::ArrayAttr64 位元整數陣列屬性
座標轉換模式::mlir::StringAttr字串屬性
立方係數 a::mlir::FloatAttr32 位元浮點屬性
排除外部::mlir::IntegerAttr64 位元帶符號整數屬性
外推值::mlir::FloatAttr32 位元浮點屬性
保持長寬比策略::mlir::StringAttr字串屬性
mode::mlir::StringAttr字串屬性
最近模式::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 位元無正負號整數值張量或無類型

結果

結果 描述
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 取代。

特性:AlwaysSpeculatableImplTraitHasParent<func::FuncOp>ReturnLikeTerminator

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)RegionBranchTerminatorOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 描述
運算元 任何類型的可變引數

onnx.ReverseSequence (ONNXReverseSequenceOp)

ONNX ReverseSequence 運算

反轉由 sequence_lens 指定的不同長度的序列批次。

對於在批次軸上迭代的每個切片 i,運算子會反轉時間軸上前 sequence_lens[i] 個元素,並將索引超出 sequence_lens[i] 的元素複製到輸出。因此,輸出切片 i 在前 sequence_lens[i] 個元素上包含反轉的序列,然後將其他元素的原始值複製過來。

範例 1:input = [[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

output = [[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:input = [[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

output = [[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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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 運算

Mask R-CNN 論文中所述的感興趣區域 (RoI) 對齊運算。RoiAlign 會取用輸入張量 X 和感興趣區域 (rois),以在每個 RoI 上套用池化;它會產生形狀為 (num_rois, C, output_height, output_width) 的 4-D 張量。

提出 RoiAlign 是為了避免在將原始影像轉換為特徵圖,以及將特徵圖轉換為 RoI 特徵時消除量化所造成的未對齊;在每個 RoI bin 中,會透過雙線性插值直接計算取樣位置的值。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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 接收一個輸入張量,並逐元素捨入值,這表示它會為每個值找到最接近的整數。如果為一半,則規則是將其捨入到最接近的偶數整數。如果輸入 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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 描述
X 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量

結果

結果 描述
Y 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量

onnx.STFT (ONNXSTFTOp)

ONNX STFT 運算

計算訊號的短時傅立葉轉換。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
onesided::mlir::IntegerAttr64 位元帶符號整數屬性

運算元

運算元 描述
訊號 32 位元浮點數值張量、16 位元浮點數值張量、64 位元浮點數值張量或 bfloat16 類型數值張量
frame_step 32 位元無號整數值張量或 64 位元無號整數值張量
視窗 32 位元浮點數值張量、16 位元浮點數值張量、64 位元浮點數值張量、bfloat16 類型值張量或無類型
frame_length 32 位元無正負號整數值張量或 64 位元無正負號整數值張量或無類型

結果

結果 描述
輸出 32 位元浮點數值張量、16 位元浮點數值張量、64 位元浮點數值張量或 bfloat16 類型數值張量

onnx.SVMClassifier (ONNXSVMClassifierOp)

ONNX SVMClassifier 運算

支援向量機分類器

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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 運算

支援向量機迴歸預測和單類 SVM 異常偵測。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
offset::mlir::ArrayAttr32 位元浮點陣列屬性
scale::mlir::ArrayAttr32 位元浮點陣列屬性

運算元

運算元 描述
X 32 位元浮點數值張量或 64 位元浮點數值張量或 64 位元無號整數值張量或 32 位元無號整數值張量

結果

結果 描述
Y 32 位元浮點數值張量

onnx.Scan (ONNXScanOp)

ONNX Scan 運算

掃描 (Scan) 可用於疊代一個或多個 scan_input 張量,建構零個或多個 scan_output 張量。它結合了一般遞迴、函數式程式設計結構(例如掃描、摺疊、映射和壓縮)的概念,旨在實現序列到序列處理中類似 RNN 的結構的泛化。其他張量(這裡稱為 state_variables)可用於在從一個元素疊代到另一個元素時攜帶狀態(類似於 RNN 中的隱藏狀態,在迴圈上下文中也稱為迴圈攜帶相依性)。許多常見的用法涉及單個 scan_input 張量(其中可以獲得類似掃描、摺疊和映射的功能)。當使用多個 scan_input 時,會獲得類似於壓縮的行為。

屬性 body 必須是一個圖形,指定每次疊代中要執行的計算。它以 state_variables 的當前值和 scan_inputs 的當前疊代元素作為輸入。它必須傳回 state_variables 的(更新)值以及零個或多個 scan_output_element 張量。scan_output_element 張量的值在所有疊代中串連起來,以產生掃描結構的 scan_output 值(類似於 RNN 類結構的串連中間隱藏狀態值)。所有輸出張量(state_variables 以及 scan_output_element 張量)都必須在迴圈的每次疊代中具有相同的形狀(為了實現有效的記憶體分配而施加的限制)。

請注意,傳遞到 body 子圖的疊代元素沒有序列軸。它的秩將比對應的 scan_input 的秩少 1。

掃描操作會傳回 state_variables 的最終值以及 scan_outputs。

可選屬性 scan_input_directions 指定每個掃描輸入的方向(前向或後向)。如果省略此屬性,則所有序列都將在前向方向掃描。可以透過在 scan_inputs 中指定相同的張量輸入兩次來執行雙向掃描,一次是前向方向,另一次是後向方向。

操作的 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 限制只有運算符的最後一個參數可以是可變的,因此初始狀態和掃描輸入一起列為一個輸入參數。同樣,最終狀態和掃描輸出一起列為一個輸出參數。屬性 num_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;

範例用法:使用掃描編碼 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

介面: ConditionallySpeculatableHasOnnxSubgraphOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)ResultTypeInferenceOpInterfaceShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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 接受三個輸入 dataupdatesindices,它們的秩 r >= 1 相同,以及一個可選屬性 axis,該屬性識別 data 的軸(預設為最外層的軸,即軸 0)。運算的輸出是透過建立輸入 data 的副本,然後將其值更新為 updates 指定的值(在 indices 指定的特定索引位置)而產生的。其輸出形狀與 data 的形狀相同。

對於 updates 中的每個條目,data 中的目標索引是透過將 indices 中的對應條目與條目本身的索引組合而獲得的:維度 = axis 的索引值是從 indices 中對應條目的值獲得的,而維度 != axis 的索引值是從條目本身的索引獲得的。

reduction 允許指定一個可選的歸約運算,該運算將應用於 updates 張量中所有到 output 的值(在指定的 indices 處)。在 reduction 設定為「none」的情況下,索引不應有重複的條目:也就是說,如果 idx1 != idx2,則 indices[idx1] != indices[idx2]。例如,在 2D 張量情況下,對應於 [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+*maxmin,如指定。

此運算符是 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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
::mlir::IntegerAttr64 位元帶符號整數屬性
reduction::mlir::StringAttr字串屬性

運算元

運算元 描述
資料 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 的 data 張量、秩 q >= 1 的 indices 張量和秩 q + r - indices.shape[-1] - 1 的 updates 張量。運算的輸出是透過建立輸入 data 的副本,然後將其值更新為 updates 指定的值(在 indices 指定的特定索引位置)而產生的。其輸出形狀與 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 的其餘維度對應於替換切片值的維度。每個替換切片值都是 (r-k) 維張量,對應於 data 的後方 (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 允許指定一個可選的歸約運算,該運算將應用於 updates 張量中所有到 output 的值(在指定的 indices 處)。在 reduction 設定為「none」的情況下,索引不應有重複的條目:也就是說,如果 idx1 != idx2,則 indices[idx1] != indices[idx2]。這確保了輸出值不依賴於疊代順序。當 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+*maxmin,如指定。

此運算符是 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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
reduction::mlir::StringAttr字串屬性

運算元

運算元 描述
資料 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 接受三個輸入 dataupdatesindices,它們的秩 r >= 1 相同,以及一個可選屬性 axis,該屬性識別 data 的軸(預設為最外層的軸,即軸 0)。運算的輸出是透過建立輸入 data 的副本,然後將其值更新為 updates 指定的值(在 indices 指定的特定索引位置)而產生的。其輸出形狀與 data 的形狀相同。

對於 updates 中的每個條目,data 中的目標索引是透過將 indices 中的對應條目與條目本身的索引組合而獲得的:維度 = axis 的索引值是從 indices 中對應條目的值獲得的,而維度 != axis 的索引值是從條目本身的索引獲得的。

例如,在二維張量的情況下,對應於 [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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
::mlir::IntegerAttr64 位元帶符號整數屬性

運算元

運算元 描述
資料 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 接受一個輸入資料(張量) 並產生一個輸出資料 (張量),其中縮放的指數線性單元函數 `y = gamma * (alpha * e^x - alpha) for x <= 0`,`y = gamma * x for x > 0`,會逐元素應用於張量。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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

介面:ConditionallySpeculatableNoMemoryEffect (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
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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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

介面:ConditionallySpeculatableNoMemoryEffect (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
position 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.SequenceInsert (ONNXSequenceInsertOp)

ONNX SequenceInsert 運算

輸出一個張量序列,該序列會將 'tensor' 插入 'input_sequence' 的 'position' 位置。'tensor' 必須具有與 'input_sequence' 相同的資料類型。'position' 的可接受範圍為 [-n, n],其中 n 是 'input_sequence' 中張量的數量。負值表示從後往前數位置。'position' 是可選的,預設情況下它會將 'tensor' 插入 'input_sequence' 的末尾。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (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
tensor 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或字串類型數值張量或 1 位元無號整數數值張量或具有 32 位元浮點元素值的複數類型張量或具有 64 位元浮點元素值的複數類型張量
position 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.SequenceLength (ONNXSequenceLengthOp)

ONNX SequenceLength 運算

產生一個純量(空形狀的張量),其中包含 'input_sequence' 中張量的數量。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (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

結果

結果 描述
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 可用於計算輸入張量形狀的切片。如果省略 start 軸,則切片從軸 0 開始。如果指定 end 軸,則該軸是排他的(且傳回的值不包含該軸的大小)。如果省略 end 軸,則會包含直到最後一個軸的軸。負軸表示從最後一個軸往回數。請注意,如果軸超出範圍(在負軸的情況下加 r 之後),則軸將被限制在範圍 [0, r-1] 中,其中 r 是輸入張量的秩。因此,指定任何大於 r 的 end 值等效於指定 r 的 end 值,而指定任何小於 -r 的 start 值等效於指定 0 的 start 值。

範例

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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
end::mlir::IntegerAttr64 位元帶符號整數屬性
start::mlir::IntegerAttr64 位元帶符號整數屬性

運算元

運算元 描述
資料 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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
index_map::mlir::AffineMapAttrAffineMap 屬性

運算元

運算元 描述
輸入 32 位元浮點數值張量

結果

結果 描述
輸出 32 位元浮點數值張量

onnx.Shrink (ONNXShrinkOp)

ONNX Shrink 運算

Shrink 接受一個輸入資料(張量),並產生一個張量輸出,其資料類型和形狀與輸入相同。它有兩個屬性,lambd 和 bias。此運算子的公式為:如果 x < -lambd,y = x + bias;如果 x > lambd,y = x - bias;否則,y = 0。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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 接受一個輸入資料(張量) 並產生一個輸出資料 (張量),其中 sigmoid 函數,y = 1 / (1 + exp(-x)),會逐元素應用於張量。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 描述
X 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型數值張量

結果

結果 描述
Y 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型數值張量

onnx.Sign (ONNXSignOp)

ONNX Sign 運算

逐元素計算給定輸入張量的符號。如果輸入 > 0,則輸出 1。如果輸入 < 0,則輸出 -1。如果輸入 == 0,則輸出 0。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 描述
輸入 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量

結果

結果 描述
輸出 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量

onnx.Sinh (ONNXSinhOp)

ONNX Sinh 運算

逐元素計算給定輸入張量的雙曲正弦值。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 描述
輸入 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量

結果

結果 描述
輸出 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量

onnx.Size (ONNXSizeOp)

ONNX Size 運算

接受一個張量作為輸入,並輸出一個 int64 純量,該純量等於輸入張量的元素總數。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 描述
資料 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.dev.org.tw/doc/stable/user/basics.indexing.html?highlight=slice#slicing-and-striding

Slice 使用 startsendsaxessteps 輸入來選擇其輸入 data 張量的子張量。

必須為 [0, ... r-1] 中的每個 i 計算有效的 starts[i]ends[i]steps[i],其中 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]] 會被限制在正向步進的 [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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 描述
資料 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 bfloat16 類型數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或字串類型數值張量或 1 位元無號整數數值張量或具有 32 位元浮點元素值的複數類型張量或具有 64 位元浮點元素值的複數類型張量
starts 32 位元無號整數值張量或 64 位元無號整數值張量
ends 32 位元無號整數值張量或 64 位元無號整數值張量
axes 32 位元無正負號整數值張量或 64 位元無正負號整數值張量或無類型
steps 32 位元無正負號整數值張量或 64 位元無正負號整數值張量或無類型

結果

結果 描述
輸出 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 bfloat16 類型數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或字串類型數值張量或 1 位元無號整數數值張量或具有 32 位元浮點元素值的複數類型張量或具有 64 位元浮點元素值的複數類型張量

onnx.SoftmaxCrossEntropyLoss (ONNXSoftmaxCrossEntropyLossOp)

ONNX SoftmaxCrossEntropyLoss 運算

損失函數,用於衡量 'scores' 和 'labels' 之間的 softmax 交叉熵。此運算子首先計算一個損失張量,其形狀與 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 可用之後,此運算子可以選擇性地執行縮減運算。

一個樣本的損失 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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
::mlir::IntegerAttr64 位元帶符號整數屬性

運算元

運算元 描述
輸入 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型數值張量

結果

結果 描述
輸出 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型數值張量

onnx.SoftmaxV11 (ONNXSoftmaxV11Op)

ONNX Softmax 運算

此運算子計算給定輸入批次中每一層的 softmax (正規化指數) 值。

輸入不需要明確地為 2D 向量;而是會被強制轉換成一個。對於任意 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。這些維度中的每一個都必須正確匹配,否則運算子會擲出錯誤。輸出張量具有相同的形狀,並包含相應輸入的 softmax 值。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
::mlir::IntegerAttr64 位元帶符號整數屬性

運算元

運算元 描述
輸入 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量

結果

結果 描述
輸出 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量

onnx.Softplus (ONNXSoftplusOp)

ONNX Softplus 運算

Softplus 採用一個輸入數據 (Tensor) 並產生一個輸出資料 (張量),其中 softplus 函數 y = ln(exp(x) + 1) 逐元素地應用於張量。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 描述
X 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量

結果

結果 描述
Y 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量

onnx.Softsign (ONNXSoftsignOp)

ONNX Softsign 運算

計算給定輸入張量的 softsign (x/(1+ x )),逐元素運算。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 描述
輸入 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量

結果

結果 描述
輸出 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量

onnx.SpaceToDepth (ONNXSpaceToDepthOp)

ONNX SpaceToDepth 運算

SpaceToDepth 將空間數據區塊重新排列為深度。更具體而言,此運算會輸出輸入張量的副本,其中高度和寬度維度的值會移至深度維度。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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 運算

沿著指定的 'axis' 將張量分割成張量列表。應指定輸入 'split' 或屬性 'num_outputs',但不能同時指定兩者。如果指定了屬性 'num_outputs',則張量會分割成大小相等的部分。如果張量無法均勻分割成 num_outputs,則最後一塊會較小。如果指定了輸入 'split',則表示分割中每個輸出的尺寸。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
::mlir::IntegerAttr64 位元帶符號整數屬性
num_outputs::mlir::IntegerAttr64 位元帶符號整數屬性

運算元

運算元 描述
輸入 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 bfloat16 類型數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或字串類型數值張量或 1 位元無號整數數值張量或具有 32 位元浮點元素值的複數類型張量或具有 64 位元浮點元素值的複數類型張量
split 64 位元無正負號整數值張量或無類型

結果

結果 描述
輸出 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 bfloat16 類型數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或字串類型數值張量或 1 位元無號整數數值張量或 具有 32 位元浮點元素值的複數類型張量或具有 64 位元浮點元素值的複數類型張量的可變引數

onnx.SplitToSequence (ONNXSplitToSequenceOp)

ONNX SplitToSequence 運算

沿著指定的 'axis' 將張量分割成張量序列。可以使用選擇性引數 'split' 指定各部分的長度。如果未指定引數 split',則會將預設純量值 1 用作 split' 的值。'split' 必須僅包含正數。'split' 要嘛是一個純量 (空形狀的張量),要嘛是一個 1 維張量。如果 'split' 是一個純量,則 'input' 將分割成大小都為 'split' 的區塊 (如果可能)。如果沿著給定軸 'axis' 的 'input' 大小無法被 'split' 整除,則只有最後一個區塊可能小於 'split'。如果 'split' 是一個 1 維張量,則輸入張量會分割成 'size(split)' 個區塊,其中 'split' 中指定了在 'axis' 上各部分的長度。在這種情況下,'split' 中條目的總和必須等於輸入張量在 'axis' 上的維度大小。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
::mlir::IntegerAttr64 位元帶符號整數屬性
keepdims::mlir::IntegerAttr64 位元帶符號整數屬性

運算元

運算元 描述
輸入 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或字串類型數值張量或 1 位元無號整數數值張量或具有 32 位元浮點元素值的複數類型張量或具有 64 位元浮點元素值的複數類型張量
split 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.SplitV11 (ONNXSplitV11Op)

ONNX Split 運算

沿著指定的 'axis' 將張量分割成張量列表。可以使用引數 'split' 指定各部分的長度。否則,張量會分割成大小相等的部分。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
::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 運算

沿著指定的 'axis' 將張量分割成張量列表。可以使用輸入 'split' 指定各部分的長度。否則,張量會分割成大小相等的部分。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
::mlir::IntegerAttr64 位元帶符號整數屬性

運算元

運算元 描述
輸入 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 bfloat16 類型數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或字串類型數值張量或 1 位元無號整數數值張量或具有 32 位元浮點元素值的複數類型張量或具有 64 位元浮點元素值的複數類型張量
split 64 位元無正負號整數值張量或無類型

結果

結果 描述
輸出 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 bfloat16 類型數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或字串類型數值張量或 1 位元無號整數數值張量或 具有 32 位元浮點元素值的複數類型張量或具有 64 位元浮點元素值的複數類型張量的可變引數

onnx.Sqrt (ONNXSqrtOp)

ONNX Sqrt 運算

平方根運算採用一個輸入數據 (Tensor) 並產生一個輸出資料 (張量),其中平方根 y = x^0.5 逐元素地應用於張量。如果 x 是負數,則會傳回 NaN。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 描述
X 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型數值張量

結果

結果 描述
Y 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型數值張量

onnx.Squeeze (ONNXSqueezeOp)

ONNX Squeeze 運算

從張量的形狀中移除單維條目。採用具有要壓縮軸列表的輸入 axes。如果未提供 axes,則會從形狀中移除所有單維度。如果選取的軸的形狀條目不等於 1,則會產生錯誤。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 描述
資料 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 bfloat16 類型數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或字串類型數值張量或 1 位元無號整數數值張量或具有 32 位元浮點元素值的複數類型張量或具有 64 位元浮點元素值的複數類型張量
axes 64 位元無正負號整數值張量或無類型

結果

結果 描述
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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
axes::mlir::ArrayAttr64 位元整數陣列屬性

運算元

運算元 描述
資料 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 表示) 和一個輸出 (以 Y 表示)。此運算子首先檢查 X 中的元素,並移除 "stopwords" 屬性中指定的元素。移除停止詞後,可以根據 "case_change_action" 屬性進一步將中間結果轉換為小寫、大寫或僅傳回。此運算子僅接受 [C]- 和 [1, C]-張量。如果 X 中的所有元素都被捨棄,則如果輸入形狀為 [C],輸出將是形狀為 [1] 的字串張量的空值;如果輸入形狀為 [1, C],則輸出將是形狀為 [1, 1] 的字串張量的空值。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 描述
data_0 16 位元浮點數值張量、32 位元浮點數值張量、64 位元浮點數值張量或 bfloat16 類型值的張量的變數

結果

結果 描述
sum 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型數值張量

onnx.Tan (ONNXTanOp)

ONNX Tan 運算

逐元素計算給定輸入張量的正切值。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 描述
輸入 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量

結果

結果 描述
輸出 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量

onnx.Tanh (ONNXTanhOp)

ONNX Tanh 運算

逐元素計算給定輸入張量的雙曲正切值。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 描述
輸入 bfloat16 類型值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量

結果

結果 描述
輸出 bfloat16 類型值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量

onnx.TfIdfVectorizer (ONNXTfIdfVectorizerOp)

ONNX TfIdfVectorizer 運算

此轉換會從輸入序列中提取 n-gram,並將其儲存為向量。輸入可以是 1 維或 2 維張量。對於 1 維輸入,輸出是該輸入的 n-gram 表示。對於 2 維輸入,輸出也是 2 維張量,其第 i 列是第 i 個輸入列的 n-gram 表示。更具體而言,如果輸入形狀是 [C],則對應的輸出形狀將為 [max(ngram_indexes) + 1]。如果輸入形狀是 [N, C],則此運算子會產生一個 [N, max(ngram_indexes) + 1]-張量。

與標準的 n-gram 提取不同,此處從原始序列提取 n-gram 的索引不一定是連續的數字。索引之間的間斷性由跳過次數控制。如果跳過次數為 2,我們在掃描原始序列時應跳過兩個詞元 (token)。 讓我們考慮一個例子。假設輸入序列為 [94, 17, 36, 12, 28],跳過次數為 2。關聯的 2-gram 分別為 [94, 12] 和 [17, 28],索引分別為 [0, 3] 和 [1, 4]。如果跳過次數變為 0,則生成的 2-gram 分別為 [94, 17]、[17, 36]、[36, 12]、[12, 28],索引分別為 [0, 1]、[1, 2]、[2, 3]、[3, 4]。

輸出向量 (以 Y 表示) 儲存每個 n-gram 的計數;Y[ngram_indexes[i]] 表示找到第 i 個 n-gram 的次數。屬性 ngram_indexes 用於確定索引 i 和相應 n-gram 的輸出坐標之間的映射。如果 pool_int64s 為 [94, 17, 17, 36],ngram_indexes 為 [1, 0],ngram_counts=[0, 0],則 Y[0] (Y 中的第一個元素) 和 Y[1] (Y 中的第二個元素) 分別為 [17, 36] 和 [94, 17] 的計數。在 pool_strings/pool_int64s 中找不到的 n-gram 應被忽略,且對輸出沒有影響。請注意,我們在生成 n-gram 時可能會考慮所有高達 S 的跳過次數。

如果模式為 "TF",則以上範例皆為真。如果模式為 "IDF",所有大於 1 的計數都會被截斷為 1,並且權重中的第 i 個元素會被用來縮放 (透過乘法) pool 中第 i 個 n-gram 的計數。如果模式為 "TFIDF",此運算子會先計算所有 n-gram 的計數,然後再使用權重屬性中的相關值縮放它們。

只能設定 pool_strings 和 pool_int64s 其中之一。如果設定 pool_int64s,則輸入應為整數張量。如果設定 pool_strings,則輸入必須為字串張量。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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 接受一個輸入資料 (張量) 並產生一個輸出資料 (張量),其中將修正線性函數 y = x (當 x > alpha 時) 和 y = 0 (當其他情況時) 逐元素地應用於張量。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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,返回兩個輸出

給定兩個相等的值,此運算子會使用沿軸的索引作為決勝因素。也就是說,索引較低的元素將會先出現。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
::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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
perm::mlir::ArrayAttr64 位元整數陣列屬性

運算元

運算元 描述
資料 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 中只會有一個被定義。class_ids 是此列表的索引。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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 只能出現一次。
所有以 target_ 為前綴的欄位都是葉節點的投票元組。
一個葉節點可能有多次投票,其中每次投票都會由關聯的 target_weights 索引加權。
所有樹的節點 ID 都必須從 0 開始,並遞增 1。
模式列舉為 BRANCH_LEQ、BRANCH_LT、BRANCH_GTE、BRANCH_GT、BRANCH_EQ、BRANCH_NEQ、LEAF

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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] 的輸入張量,其中 * 為零個或多個批次維度。上三角部分由給定對角線 (k) 上和之上的元素組成。下三角部分由對角線上和之下的元素組成。矩陣中的所有其他元素都設定為零。如果 k = 0,則保留主對角線上和之上/之下的三角部分。如果 upper 設定為 true,則正 k 會保留上三角矩陣,但不包括主對角線及其上方 (k-1) 條對角線。負 k 值會保留主對角線及其下方 |k| 條對角線。如果 upper 設定為 false,則正 k 會保留下三角矩陣,包括主對角線及其上方 k 條對角線。負 k 值會排除主對角線及其下方 (|k|-1) 條對角線。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
upper::mlir::IntegerAttr64 位元帶符號整數屬性

運算元

運算元 描述
輸入 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 bfloat16 類型數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或字串類型數值張量或 1 位元無號整數數值張量或具有 32 位元浮點元素值的複數類型張量或具有 64 位元浮點元素值的複數類型張量
k 64 位元無正負號整數值張量或無類型

結果

結果 描述
輸出 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 bfloat16 類型數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或字串類型數值張量或 1 位元無號整數數值張量或具有 32 位元浮點元素值的複數類型張量或具有 64 位元浮點元素值的複數類型張量

onnx.Unique (ONNXUniqueOp)

ONNX Unique 運算

找出張量的唯一元素。當提供可選屬性 ‘axis’ 時,會傳回沿著 ‘axis’ 切片的唯一子張量。否則,輸入張量會被展平,並傳回展平張量的唯一值。

此運算子會傳回輸入張量的唯一值或切片的唯一子張量,以及三個可選輸出。第一個輸出張量 ‘Y’ 包含輸入的所有唯一值或子張量。第二個可選輸出張量 ‘indices’ 包含 ‘Y’ 元素在 ‘X’ 中第一次出現的索引。第三個可選輸出張量 ‘inverse_indices’ 針對 ‘X’ 的元素,包含其在 ‘Y’ 中的對應索引。第四個可選輸出張量 ‘counts’ 包含輸入中 ‘Y’ 的每個元素的計數。

輸出會以遞增順序排序,或者選擇性地按照值在輸入中第一次出現的順序排序。

https://scipy-docs.dev.org.tw/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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
::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 位元無正負號整數值張量或無類型
inverse_indices 64 位元無正負號整數值張量或無類型
counts 64 位元無正負號整數值張量或無類型

onnx.Unsqueeze (ONNXUnsqueezeOp)

ONNX Unsqueeze 運算

將單維條目插入輸入張量 ( data ) 的形狀。接受一個必要輸入 axes,其中包含維度索引的列表,此運算子將會將值為 1 的維度插入輸出張量 ( expanded ) 的對應索引。

例如,給定一個形狀為 [3, 4, 5] 的輸入張量 ( data ),則 Unsqueeze(data, axes=[0, 4]) 會輸出一個張量 ( expanded ),其中包含與 data 相同的資料,但形狀為 [1, 3, 4, 5, 1]。

輸入 axes 不應包含任何重複的條目。如果包含重複項,則會發生錯誤。輸出張量 ( output_rank ) 的秩是輸入張量 ( data ) 的秩加上 axes 中值的數量。axes 中的每個值都應在 (含) 範圍 [-output_rank , output_rank - 1] 內。axes 中值的順序並不重要,並且可以以任何順序出現。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 描述
資料 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 ) 的形狀。接受一個必要參數 axes,其中包含維度索引的列表,此運算子將會將值為 1 的維度插入輸出張量 ( expanded ) 的對應索引。

例如:給定一個形狀為 [3, 4, 5] 的輸入張量 ( data ),則 Unsqueeze(data, axes=[0, 4]) 會輸出一個張量 ( expanded ),其中包含與 data 相同的資料,但形狀為 [1, 3, 4, 5, 1]。

屬性 axes 不應包含任何重複的條目。如果包含重複項,則會發生錯誤。輸出張量 ( output_rank ) 的秩是輸入張量 ( data ) 的秩加上 axes 中值的數量。axes 中的每個值都應在 (含) 範圍 [-output_rank , output_rank - 1] 內。axes 中值的順序並不重要,並且可以以任何順序出現。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
axes::mlir::ArrayAttr64 位元整數陣列屬性

運算元

運算元 描述
資料 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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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 的行為類似於具有三個參數的 numpy.where

此運算子支援多向 (即 Numpy 式) 廣播;如需更多詳細資訊,請查看 文件

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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 互斥或運算

返回對輸入張量 AB 逐元素執行互斥或邏輯運算後產生的張量(支援 Numpy 風格的廣播)。

此運算子支援多向 (即 Numpy 式) 廣播;如需更多詳細資訊,請查看 文件

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果: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

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)RegionBranchTerminatorOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 描述
運算元 任何類型的可變引數

onnx.ZipMap (ONNXZipMapOp)

ONNX ZipMap 運算

從輸入和屬性建立一個映射。
數值由輸入張量提供,而鍵則由屬性指定。必須在 classlabels_strings 或 classlabels_int64s 中提供鍵(但不能兩者都提供)。
張量的列與屬性指定的鍵一一對應。必須有與鍵一樣多的列。

特徵:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)ShapeHelperOpInterfaceShapeInferenceOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 型別描述
classlabels_int64s::mlir::ArrayAttr64 位元整數陣列屬性
classlabels_strings::mlir::ArrayAttr字串陣列屬性

運算元

運算元 描述
X 32 位元浮點數值張量

結果

結果 描述
Z 包含任何字串類型或 32 位元浮點數值的元組的 SeqType,或包含任何 64 位元無符號整數或 32 位元浮點數值的元組的 SeqType