在 MLIR 編譯器基礎架構中表示和參考降低 ONNX 模型
此專案由 onnx 維護
託管於 GitHub Pages — 主題由 orderedlist 提供
onnx.Abs
(ONNXAbsOp)ONNX Abs 運算
Absolute 接受一個輸入資料 (張量
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
X |
8 位元無符號整數值張量或 16 位元無符號整數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量或 8 位元無號整數值張量或 16 位元無號整數值張量或 32 位元無號整數值張量或 64 位元無號整數值張量或 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量或 bfloat16 型別值張量 |
結果 | 描述 |
---|---|
Y |
8 位元無符號整數值張量或 16 位元無符號整數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量或 8 位元無號整數值張量或 16 位元無號整數值張量或 32 位元無號整數值張量或 64 位元無號整數值張量或 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量或 bfloat16 型別值張量 |
onnx.Acos
(ONNXAcosOp)ONNX Acos 運算
計算給定輸入張量的反餘弦 (餘弦的反函數),逐元素。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
輸入 |
16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量 |
結果 | 描述 |
---|---|
輸出 |
16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量 |
onnx.Acosh
(ONNXAcoshOp)ONNX Acosh 運算
計算給定輸入張量的雙曲反餘弦,逐元素。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
輸入 |
16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量 |
結果 | 描述 |
---|---|
輸出 |
16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量 |
onnx.Adagrad
(ONNXAdagradOp)ONNX Adagrad 運算
計算 ADAGRAD 的一次迭代,一種基於隨機梯度的最佳化演算法。此運算子可以執行多個張量變數的最佳化。
Let's define the behavior of this operator. As you can imagine, ADAGRAD requires
some parameters:
- The initial learning-rate \"R\".
- The update count \"T\". That is, the number of training iterations conducted.
- A L2-norm regularization coefficient \"norm_coefficient\".
- A learning-rate decay factor \"decay_factor\".
- A small constant \"epsilon\" to avoid dividing-by-zero.
At each ADAGRAD iteration, the optimized tensors are moved along a direction
computed based on their estimated gradient and accumulated squared gradient. Assume
that only a single tensor \"X\" is updated by this operator. We need the value of \"X\",
its gradient \"G\", and its accumulated squared gradient \"H\". Therefore, variables in
this operator's input list are sequentially \"R\", \"T\", \"X\", \"G\", and \"H\". Other
parameters are given as attributes because they are usually constants. Also, the
corresponding output tensors are the new value of \"X\" (called \"X_new\"), and then
the new accumulated squared gradient (called \"H_new\"). Those outputs are computed
from the given inputs following the pseudo code below.
Let \"+\", \"-\", \"*\", and \"/\" are all element-wise arithmetic operations with
numpy-style broadcasting support. The pseudo code to compute those outputs is:
// Compute a scalar learning-rate factor. At the first update of X, T is generally
// 0 (0-based update index) or 1 (1-based update index).
r = R / (1 + T * decay_factor);
// Add gradient of 0.5 * norm_coefficient * ||X||_2^2, where ||X||_2 is the 2-norm.
G_regularized = norm_coefficient * X + G;
// Compute new accumulated squared gradient.
H_new = H + G_regularized * G_regularized;
// Compute the adaptive part of per-coordinate learning rate. Note that Sqrt(...)
// computes element-wise square-root.
H_adaptive = Sqrt(H_new) + epsilon
// Compute the new value of \"X\".
X_new = X - r * G_regularized / H_adaptive;
If one assign this operators to optimize multiple inputs, for example, \"X_1\" and \"X_2\", the same
pseudo code may be extended to handle all tensors jointly. More specifically, we can view \"X\" as a
concatenation of \"X_1\" and \"X_2\" (of course, their gradient and accumulate gradient should
be concatenated too) and then just reuse the entire pseudo code.
Note that ADAGRAD was first proposed in http://jmlr.org/papers/volume12/duchi11a/duchi11a.pdf.
In that reference paper, this operator is a special case of the Figure 1's composite mirror
descent update.
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
decay_factor | ::mlir::FloatAttr | 32 位元浮點屬性 |
epsilon | ::mlir::FloatAttr | 32 位元浮點屬性 |
norm_coefficient | ::mlir::FloatAttr | 32 位元浮點屬性 |
運算元 | 描述 |
---|---|
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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
alpha | ::mlir::FloatAttr | 32 位元浮點屬性 |
beta | ::mlir::FloatAttr | 32 位元浮點屬性 |
epsilon | ::mlir::FloatAttr | 32 位元浮點屬性 |
norm_coefficient | ::mlir::FloatAttr | 32 位元浮點屬性 |
norm_coefficient_post | ::mlir::FloatAttr | 32 位元浮點屬性 |
運算元 | 描述 |
---|---|
R |
32 位元浮點值張量或 64 位元浮點值張量 |
T |
64 位元無號整數值張量 |
輸入 |
32 位元浮點值張量或 64 位元浮點值張量的變數 |
結果 | 描述 |
---|---|
輸出 |
32 位元浮點值張量或 64 位元浮點值張量的變數 |
onnx.Add
(ONNXAddOp)ONNX Add 運算
執行逐元素二元加法 (支援 Numpy 式的廣播)。
此運算子支援多向 (即 Numpy 式) 廣播;如需更多詳細資訊,請查看 文件。
(Opset 14 變更):擴充支援的型別,以包含 uint8、int8、uint16 和 int16。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
A |
8 位元無符號整數值張量或 16 位元無符號整數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量或 8 位元無號整數值張量或 16 位元無號整數值張量或 32 位元無號整數值張量或 64 位元無號整數值張量或 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量或 bfloat16 型別值張量 |
B |
8 位元無符號整數值張量或 16 位元無符號整數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量或 8 位元無號整數值張量或 16 位元無號整數值張量或 32 位元無號整數值張量或 64 位元無號整數值張量或 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量或 bfloat16 型別值張量 |
結果 | 描述 |
---|---|
C |
8 位元無符號整數值張量或 16 位元無符號整數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量或 8 位元無號整數值張量或 16 位元無號整數值張量或 32 位元無號整數值張量或 64 位元無號整數值張量或 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量或 bfloat16 型別值張量 |
onnx.And
(ONNXAndOp)ONNX And 運算
傳回在輸入張量 A
和 B
上逐元素執行 and
邏輯運算所產生的張量 (支援 Numpy 式的廣播)。
此運算子支援多向 (即 Numpy 式) 廣播;如需更多詳細資訊,請查看 文件。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
A |
1 位元無號整數值張量 |
B |
1 位元無號整數值張量 |
結果 | 描述 |
---|---|
C |
1 位元無號整數值張量 |
onnx.ArgMax
(ONNXArgMaxOp)ONNX ArgMax 運算
沿著提供的軸計算輸入張量元素的最大元素索引。如果 keepdims 等於 1,則產生的張量與輸入具有相同的階數。如果 keepdims 等於 0,則產生的張量會修剪縮減的維度。如果 select_last_index 為 True (預設為 False),則如果最大值在輸入中出現多次,則會選取最大值的最後一次出現的索引。否則,會選取第一次出現的索引。輸出張量的型別為整數。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
軸 | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
keepdims | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
select_last_index | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
資料 |
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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
軸 | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
keepdims | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
select_last_index | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
資料 |
8 位元無符號整數值張量或 16 位元無符號整數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量或 8 位元無號整數值張量或 16 位元無號整數值張量或 32 位元無號整數值張量或 64 位元無號整數值張量或 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量或 bfloat16 型別值張量 |
結果 | 描述 |
---|---|
縮減 |
64 位元無號整數值張量 |
onnx.ArrayFeatureExtractor
(ONNXArrayFeatureExtractorOp)ONNX ArrayFeatureExtractor 運算
根據傳遞的索引選取輸入張量的元素。
索引會套用至張量的最後一個軸。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
X |
32 位元浮點值張量或 64 位元浮點值張量或 64 位元無號整數值張量或 32 位元無號整數值張量或字串型別值張量 |
Y |
64 位元無號整數值張量 |
結果 | 描述 |
---|---|
Z |
32 位元浮點值張量或 64 位元浮點值張量或 64 位元無號整數值張量或 32 位元無號整數值張量或字串型別值張量 |
onnx.Asin
(ONNXAsinOp)ONNX Asin 運算
計算給定輸入張量的反正弦 (正弦的反函數),逐元素。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
輸入 |
16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量 |
結果 | 描述 |
---|---|
輸出 |
16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量 |
onnx.Asinh
(ONNXAsinhOp)ONNX Asinh 運算
計算給定輸入張量的雙曲反正弦,逐元素。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
輸入 |
16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量 |
結果 | 描述 |
---|---|
輸出 |
16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量 |
onnx.Atan
(ONNXAtanOp)ONNX Atan 運算
計算給定輸入張量的反正切 (正切的反函數),逐元素。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
輸入 |
16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量 |
結果 | 描述 |
---|---|
輸出 |
16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量 |
onnx.Atanh
(ONNXAtanhOp)ONNX Atanh 運算
計算給定輸入張量的雙曲反正切,逐元素。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
輸入 |
16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量 |
結果 | 描述 |
---|---|
輸出 |
16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量 |
onnx.AveragePool
(ONNXAveragePoolOp)ONNX AveragePool 運算
AveragePool 使用輸入張量 X,並根據核心大小、步幅大小和填補長度,在張量上套用平均池化。平均池化包含根據核心大小計算輸入張量子集的全部值的平均值,並將資料降採樣至輸出張量 Y 以供進一步處理。輸出空間形狀的計算方式不同,具體取決於是否使用明確的填補 (使用 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_UPPER
或 SAME_LOWER
,則填補形狀將如下
pad_shape[i] = (output_spatial_shape[i] - 1) * strides_spatial_shape[i] + ((kernel_spatial_shape[i] - 1) * dilations[i] + 1) - input_spatial_shape[i]
每個池化視窗的輸出會除以元素的數量 (當屬性 count_include_pad 為零時,排除填補)。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
auto_pad | ::mlir::StringAttr | 字串屬性 |
ceil_mode | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
count_include_pad | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
dilations | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
kernel_shape | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
pads | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
strides | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
運算元 | 描述 |
---|---|
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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
epsilon | ::mlir::FloatAttr | 32 位元浮點屬性 |
momentum | ::mlir::FloatAttr | 32 位元浮點屬性 |
運算元 | 描述 |
---|---|
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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
epsilon | ::mlir::FloatAttr | 32 位元浮點屬性 |
momentum | ::mlir::FloatAttr | 32 位元浮點屬性 |
training_mode | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
dtype | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
seed | ::mlir::FloatAttr | 32 位元浮點屬性 |
運算元 | 描述 |
---|---|
輸入 |
16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量 |
結果 | 描述 |
---|---|
輸出 |
16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型數值張量或 8 位元無符號整數值張量或 16 位元無符號整數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量或 8 位元無號整數值張量或 16 位元無號整數值張量或 32 位元無號整數值張量或 64 位元無號整數值張量或 1 位元無號整數值張量 |
onnx.Binarizer
(ONNXBinarizerOp)ONNX 二值化運算
根據與閾值比較的結果,將輸入張量的數值逐元素地映射到 0 或 1。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
threshold | ::mlir::FloatAttr | 32 位元浮點屬性 |
運算元 | 描述 |
---|---|
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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
direction | ::mlir::StringAttr | 字串屬性 |
運算元 | 描述 |
---|---|
X |
8 位元無符號整數值張量或 16 位元無符號整數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量 |
Y |
8 位元無符號整數值張量或 16 位元無符號整數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量 |
結果 | 描述 |
---|---|
Z |
8 位元無符號整數值張量或 16 位元無符號整數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量 |
onnx.BitwiseAnd
(ONNXBitwiseAndOp)ONNX 位元與運算
傳回對輸入張量 A
和 B
逐元素執行位元 and
運算所得的張量(支援 Numpy 式廣播)。
此運算子支援多向 (即 Numpy 式) 廣播;如需更多詳細資訊,請查看 文件。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
A |
8 位元無符號整數值張量或 16 位元無符號整數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量或 8 位元無號整數值張量或 16 位元無號整數值張量或 32 位元無號整數值張量或 64 位元無號整數值張量 |
B |
8 位元無符號整數值張量或 16 位元無符號整數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量或 8 位元無號整數值張量或 16 位元無號整數值張量或 32 位元無號整數值張量或 64 位元無號整數值張量 |
結果 | 描述 |
---|---|
C |
8 位元無符號整數值張量或 16 位元無符號整數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量或 8 位元無號整數值張量或 16 位元無號整數值張量或 32 位元無號整數值張量或 64 位元無號整數值張量 |
onnx.BitwiseNot
(ONNXBitwiseNotOp)ONNX 位元非運算
傳回輸入張量逐元素的位元非。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
X |
8 位元無符號整數值張量或 16 位元無符號整數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量或 8 位元無號整數值張量或 16 位元無號整數值張量或 32 位元無號整數值張量或 64 位元無號整數值張量 |
結果 | 描述 |
---|---|
Y |
8 位元無符號整數值張量或 16 位元無符號整數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量或 8 位元無號整數值張量或 16 位元無號整數值張量或 32 位元無號整數值張量或 64 位元無號整數值張量 |
onnx.BitwiseOr
(ONNXBitwiseOrOp)ONNX 位元或運算
傳回對輸入張量 A
和 B
逐元素執行位元 or
運算所得的張量(支援 Numpy 式廣播)。
此運算子支援多向 (即 Numpy 式) 廣播;如需更多詳細資訊,請查看 文件。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
A |
8 位元無符號整數值張量或 16 位元無符號整數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量或 8 位元無號整數值張量或 16 位元無號整數值張量或 32 位元無號整數值張量或 64 位元無號整數值張量 |
B |
8 位元無符號整數值張量或 16 位元無符號整數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量或 8 位元無號整數值張量或 16 位元無號整數值張量或 32 位元無號整數值張量或 64 位元無號整數值張量 |
結果 | 描述 |
---|---|
C |
8 位元無符號整數值張量或 16 位元無符號整數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量或 8 位元無號整數值張量或 16 位元無號整數值張量或 32 位元無號整數值張量或 64 位元無號整數值張量 |
onnx.BitwiseXor
(ONNXBitwiseXorOp)ONNX 位元互斥或運算
傳回對輸入張量 A
和 B
逐元素執行位元 xor
運算所得的張量(支援 Numpy 式廣播)。
此運算子支援多向 (即 Numpy 式) 廣播;如需更多詳細資訊,請查看 文件。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
A |
8 位元無符號整數值張量或 16 位元無符號整數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量或 8 位元無號整數值張量或 16 位元無號整數值張量或 32 位元無號整數值張量或 64 位元無號整數值張量 |
B |
8 位元無符號整數值張量或 16 位元無符號整數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量或 8 位元無號整數值張量或 16 位元無號整數值張量或 32 位元無號整數值張量或 64 位元無號整數值張量 |
結果 | 描述 |
---|---|
C |
8 位元無符號整數值張量或 16 位元無符號整數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量或 8 位元無號整數值張量或 16 位元無號整數值張量或 32 位元無號整數值張量或 64 位元無號整數值張量 |
onnx.BlackmanWindow
(ONNXBlackmanWindowOp)ONNX 布萊克曼視窗運算
產生如論文 https://ieeexplore.ieee.org/document/1455106 中所述的布萊克曼視窗。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
output_datatype | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
periodic | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
size |
32 位元無號整數值張量或 64 位元無號整數值張量 |
結果 | 描述 |
---|---|
輸出 |
8 位元無符號整數值張量或 16 位元無符號整數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量或 8 位元無號整數值張量或 16 位元無號整數值張量或 32 位元無號整數值張量或 64 位元無號整數值張量或 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量或 bfloat16 型別值張量 |
onnx.CastLike
(ONNXCastLikeOp)ONNX CastLike 運算
此運算子將給定輸入張量(第一個輸入)的元素轉換為與第二個輸入張量元素的相同資料類型。請參閱 Cast 運算子的文件以取得更多詳細資訊。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
saturate | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
輸入 |
16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 8 位元無號整數值張量或 16 位元無號整數值張量或 32 位元無號整數值張量或 64 位元無號整數值張量或 8 位元無符號整數值張量或 16 位元無符號整數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量或 1 位元無號整數值張量或字串類型數值張量或 bfloat16 類型數值張量或 f8E4M3FN 類型數值張量或 f8E4M3FNUZ 類型數值張量或 f8E5M2 類型數值張量或 f8E5M2FNUZ 類型數值張量 |
target_type |
16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 8 位元無號整數值張量或 16 位元無號整數值張量或 32 位元無號整數值張量或 64 位元無號整數值張量或 8 位元無符號整數值張量或 16 位元無符號整數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量或 1 位元無號整數值張量或字串類型數值張量或 bfloat16 類型數值張量或 f8E4M3FN 類型數值張量或 f8E4M3FNUZ 類型數值張量或 f8E5M2 類型數值張量或 f8E5M2FNUZ 類型數值張量 |
結果 | 描述 |
---|---|
輸出 |
16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 8 位元無號整數值張量或 16 位元無號整數值張量或 32 位元無號整數值張量或 64 位元無號整數值張量或 8 位元無符號整數值張量或 16 位元無符號整數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量或 1 位元無號整數值張量或字串類型數值張量或 bfloat16 類型數值張量或 f8E4M3FN 類型數值張量或 f8E4M3FNUZ 類型數值張量或 f8E5M2 類型數值張量或 f8E5M2FNUZ 類型數值張量 |
onnx.CastMap
(ONNXCastMapOp)ONNX CastMap 運算
將映射轉換為張量。
映射鍵必須為 int64,並且值將根據此鍵以升序排序。
此運算子支援密集封裝或稀疏封裝。如果使用稀疏封裝,則鍵不能超過 max_map-1 值。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
cast_to | ::mlir::StringAttr | 字串屬性 |
map_form | ::mlir::StringAttr | 字串屬性 |
max_map | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
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 類型,則數值類型之間的轉換應遵循以下規則。
{1.0, 0.0}
。{1, 0}
。引入浮點數 8 類型是為了加快深度模型的訓練速度。預設情況下,浮點數 x 的轉換會遵循以下規則。[x]
表示捨入到目標尾數寬度的值。
x | E4M3FN | E4M3FNUZ | E5M2 | E5M2FNUZ |
---|---|---|---|---|
0 | 0 | 0 | 0 | 0 |
-0 | -0 | 0 | -0 | 0 |
NaN | NaN | NaN | NaN | NaN |
+/- Inf | +/- FLT_MAX | NaN | FLT_MAX | NaN |
[x] > FLT_MAX | FLT_MAX | FLT_MAX | FLT_MAX | FLT_MAX |
[x] < -FLT_MAX | -FLT_MAX | -FLT_MAX | -FLT_MAX | -FLT_MAX |
其他 | RNE | RNE | RNE | RNE |
如果將參數 ‘saturate’ 設定為 False,則行為會變更。規則將變成
x | E4M3FN | E4M3FNUZ | E5M2 | E5M2FNUZ |
---|---|---|---|---|
0 | 0 | 0 | 0 | 0 |
-0 | -0 | 0 | -0 | 0 |
NaN | NaN | NaN | NaN | NaN |
+/- Inf | NaN | NaN | +/- Inf | NaN |
[x] > FLT_MAX | NaN | NaN | Inf | NaN |
[x] < -FLT_MAX | NaN | NaN | -Inf | NaN |
其他 | RNE | RNE | RNE | RNE |
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ResultTypeInferenceOpInterface
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
saturate | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
cats_int64s | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
cats_strings | ::mlir::ArrayAttr | 字串陣列屬性 |
default_int64 | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
default_string | ::mlir::StringAttr | 字串屬性 |
運算元 | 描述 |
---|---|
X |
字串類型數值張量或 64 位元無號整數數值張量 |
結果 | 描述 |
---|---|
Y |
字串類型數值張量或 64 位元無號整數數值張量 |
onnx.Ceil
(ONNXCeilOp)ONNX Ceil 運算
Ceil 接受一個輸入資料(張量
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
X |
16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型數值張量 |
結果 | 描述 |
---|---|
Y |
16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型數值張量 |
onnx.Celu
(ONNXCeluOp)ONNX Celu 運算
連續可微指數線性單元:使用公式對輸入張量 X 逐元素執行線性單元
max(0,x) + min(0,alpha*(exp(x/alpha)-1))
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
alpha | ::mlir::FloatAttr | 32 位元浮點屬性 |
運算元 | 描述 |
---|---|
X |
32 位元浮點數值張量 |
結果 | 描述 |
---|---|
Y |
32 位元浮點數值張量 |
onnx.CenterCropPad
(ONNXCenterCropPadOp)ONNX CenterCropPad 運算
將輸入中心裁剪或填充至指定維度。
可以為 axes
的子集指定裁剪/填充維度。未指定的維度不會被裁剪或填充。
如果輸入維度大於裁剪形狀,則從輸入中提取中心裁剪視窗。如果輸入維度小於裁剪形狀,則在每一側均勻填充輸入,使輸入位於輸出中心。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
axes | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
運算元 | 描述 |
---|---|
input_data |
8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 bfloat16 類型數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或字串類型數值張量或 1 位元無號整數數值張量或具有 32 位元浮點元素值的複數類型張量或具有 64 位元浮點元素值的複數類型張量 |
shape |
32 位元無號整數值張量或 64 位元無號整數值張量 |
結果 | 描述 |
---|---|
output_data |
8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 bfloat16 類型數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或字串類型數值張量或 1 位元無號整數數值張量或具有 32 位元浮點元素值的複數類型張量或具有 64 位元浮點元素值的複數類型張量 |
onnx.Clip
(ONNXClipOp)ONNX Clip 運算
Clip 運算子將給定的輸入限制在一個區間內。該區間由輸入 'min' 和 'max' 指定。它們預設為 numeric_limits::lowest() 和 numeric_limits::max()。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
輸入 |
8 位元無符號整數值張量或 16 位元無符號整數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量或 8 位元無號整數值張量或 16 位元無號整數值張量或 32 位元無號整數值張量或 64 位元無號整數值張量或 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量或 bfloat16 型別值張量 |
min |
8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型數值張量或 none 類型 |
max |
8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型數值張量或 none 類型 |
結果 | 描述 |
---|---|
輸出 |
8 位元無符號整數值張量或 16 位元無符號整數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量或 8 位元無號整數值張量或 16 位元無號整數值張量或 32 位元無號整數值張量或 64 位元無號整數值張量或 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量或 bfloat16 型別值張量 |
onnx.ClipV11
(ONNXClipV11Op)ONNX Clip 運算
Clip 運算子將給定的輸入限制在一個區間內。該區間由輸入 'min' 和 'max' 指定。它們預設為 numeric_limits::lowest() 和 numeric_limits::max()。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
輸入 |
16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量 |
min |
16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 none 類型 |
max |
16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 none 類型 |
結果 | 描述 |
---|---|
輸出 |
16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量 |
onnx.ClipV12
(ONNXClipV12Op)ONNX Clip 運算
Clip 運算子將給定的輸入限制在一個區間內。該區間由輸入 'min' 和 'max' 指定。它們預設為 numeric_limits::lowest() 和 numeric_limits::max()。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
輸入 |
8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量 |
min |
8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 none 類型 |
max |
8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 none 類型 |
結果 | 描述 |
---|---|
輸出 |
8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量 |
onnx.ClipV6
(ONNXClipV6Op)ONNX Clip 運算
Clip 運算子將給定的輸入限制在一個區間內。該區間由引數 'min' 和 'max' 指定。它們預設為 numeric_limits::lowest() 和 numeric_limits::max() 分別。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
max | ::mlir::FloatAttr | 32 位元浮點屬性 |
min | ::mlir::FloatAttr | 32 位元浮點屬性 |
運算元 | 描述 |
---|---|
輸入 |
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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
dilations | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
pads | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
strides | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
運算元 | 描述 |
---|---|
輸入 |
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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
軸 | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
輸入 |
8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或字串類型數值張量或 1 位元無號整數數值張量或具有 32 位元浮點元素值的複數類型張量或具有 64 位元浮點元素值的複數類型張量 |
condition |
1 位元無號整數值張量 |
結果 | 描述 |
---|---|
輸出 |
8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或字串類型數值張量或 1 位元無號整數數值張量或具有 32 位元浮點元素值的複數類型張量或具有 64 位元浮點元素值的複數類型張量 |
onnx.ConcatFromSequence
(ONNXConcatFromSequenceOp)ONNX ConcatFromSequence 運算
將一系列張量串連為單個張量。所有輸入張量必須具有相同的形狀,除了要串連的軸的維度大小。預設情況下,'new_axis' 為 0,其行為類似於 numpy.concatenate。當 'new_axis' 為 1 時,其行為類似於 numpy.stack。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
軸 | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
new_axis | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
input_sequence |
8 位元無號整數數值張量的 SeqType 或 16 位元無號整數數值張量的 SeqType 或 32 位元無號整數數值張量的 SeqType 或 64 位元無號整數數值張量的 SeqType 或 8 位元無號整數數值張量的 SeqType 或 16 位元無號整數數值張量的 SeqType 或 32 位元無號整數數值張量的 SeqType 或 64 位元無號整數數值張量的 SeqType 或 16 位元浮點數值張量的 SeqType 或 32 位元浮點數值張量的 SeqType 或 64 位元浮點數值張量的 SeqType 或 字串類型數值張量的 SeqType 或 1 位元無號整數數值張量的 SeqType 或 具有 32 位元浮點元素值的複數類型張量的 SeqType 或 具有 64 位元浮點元素值的複數類型張量的 SeqType |
結果 | 描述 |
---|---|
concat_result |
8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或字串類型數值張量或 1 位元無號整數數值張量或具有 32 位元浮點元素值的複數類型張量或具有 64 位元浮點元素值的複數類型張量 |
onnx.Concat
(ONNXConcatOp)ONNX Concat 運算
將張量列表串連為單個張量。所有輸入張量必須具有相同的形狀,除了要串連的軸的維度大小。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
軸 | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
輸入 |
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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
軸 | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
end | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
start | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
perm | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
運算元 | 描述 |
---|---|
輸入 |
8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 bfloat16 類型數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或字串類型數值張量或 1 位元無號整數數值張量或 具有 32 位元浮點元素值的複數類型張量或具有 64 位元浮點元素值的複數類型張量的可變引數 |
結果 | 描述 |
---|---|
shape |
64 位元無號整數值張量 |
transposed |
8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 bfloat16 類型數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或字串類型數值張量或 1 位元無號整數數值張量或具有 32 位元浮點元素值的複數類型張量或具有 64 位元浮點元素值的複數類型張量 |
onnx.ConstantOfShape
(ONNXConstantOfShapeOp)ONNX ConstantOfShape 運算
生成具有給定值和形狀的張量。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ResultTypeInferenceOpInterface
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
value | ::mlir::Attribute | 任何屬性 |
運算元 | 描述 |
---|---|
輸入 |
64 位元無號整數值張量 |
結果 | 描述 |
---|---|
輸出 |
16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 1 位元無號整數數值張量或 bfloat16 類型數值張量或 f8E4M3FN 類型數值張量或 f8E4M3FNUZ 類型數值張量或 f8E5M2 類型數值張量或 f8E5M2FNUZ 類型數值張量 |
onnx.Constant
(ONNXConstantOp)ONNX Constant 運算
此運算子生成一個常數張量。必須指定提供的屬性之一,即 value、sparse_value 或 value_*。
特徵:AlwaysSpeculatableImplTrait
, ConstantLike
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ResultTypeInferenceOpInterface
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
sparse_value | ::mlir::Attribute | 任何屬性 |
value | ::mlir::Attribute | 任何屬性 |
value_float | ::mlir::FloatAttr | 32 位元浮點屬性 |
value_floats | ::mlir::ArrayAttr | 32 位元浮點陣列屬性 |
value_int | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
value_ints | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
value_string | ::mlir::StringAttr | 字串屬性 |
value_strings | ::mlir::ArrayAttr | 字串陣列屬性 |
結果 | 描述 |
---|---|
輸出 |
8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 bfloat16 類型數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或字串類型數值張量或 1 位元無號整數數值張量或 具有 32 位元浮點元素值的複數類型張量或具有 64 位元浮點元素值的複數類型張量或 f8E4M3FN 類型數值張量或 f8E4M3FNUZ 類型數值張量或 f8E5M2 類型數值張量或 f8E5M2FNUZ 類型數值張量 |
onnx.ConvInteger
(ONNXConvIntegerOp)ONNX ConvInteger 運算
整數卷積運算子使用輸入張量、其零點、一個濾波器及其零點,並計算輸出。生產絕不能溢位。僅當在 32 位元時,累加才可能溢位。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
auto_pad | ::mlir::StringAttr | 字串屬性 |
dilations | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
group | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
kernel_shape | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
pads | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
strides | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
運算元 | 描述 |
---|---|
x |
8 位元無號整數值張量或 8 位元無正負號整數值張量 |
w |
8 位元無號整數值張量或 8 位元無正負號整數值張量 |
x_zero_point |
8 位元無號整數值張量或 8 位元無正負號整數值張量或無類型 |
w_zero_point |
8 位元無號整數值張量或 8 位元無正負號整數值張量或無類型 |
結果 | 描述 |
---|---|
y |
32 位元無號整數值張量 |
onnx.Conv
(ONNXConvOp)ONNX 卷積運算
卷積運算子會取用輸入張量和濾波器,並計算輸出。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
auto_pad | ::mlir::StringAttr | 字串屬性 |
dilations | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
group | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
kernel_shape | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
pads | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
strides | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
運算元 | 描述 |
---|---|
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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
auto_pad | ::mlir::StringAttr | 字串屬性 |
dilations | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
group | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
kernel_shape | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
output_padding | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
output_shape | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
pads | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
strides | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
運算元 | 描述 |
---|---|
X |
16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量 |
W |
16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量 |
B |
16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 none 類型 |
結果 | 描述 |
---|---|
Y |
16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量 |
onnx.Cos
(ONNXCosOp)ONNX 餘弦運算
逐元素計算給定輸入張量的餘弦值。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
輸入 |
16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量 |
結果 | 描述 |
---|---|
輸出 |
16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量 |
onnx.Cosh
(ONNXCoshOp)ONNX 雙曲餘弦運算
逐元素計算給定輸入張量的雙曲餘弦值。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果: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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
exclusive | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
reverse | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
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) 傳播至輸出。目前支援的模式為 SameAs
、MDBroadcast
。「output_element_type」:選用。輸出張量的元素類型。如果未指定,則遵循形狀推斷模式行為。通常會使用第一個輸入的元素類型。CustomOp 的每個執行個體都可以擁有自己的形狀推斷屬性,以便進行自訂。但是,具有相同 function_name 的 CustomOp 通常在形狀推斷方面具有類似的行為,因此具有相同的屬性。
ONNX 運算的現有形狀推斷模式會重複用於 CustomOp,形狀推斷的多型基於其屬性值。由於目前針對 ONNX 運算的實作方式,具有指定形狀推斷屬性的 CustomOp 僅支援單一輸出,而非可變輸出。
如果未提供形狀推斷的屬性,則 CustomOp 的形狀推斷只會直接傳遞。
所有這些額外屬性都是選用的,其設計目的是減少侵入性。新增屬性時,.mlir 檔案可以保持不變。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
function_name | ::mlir::StringAttr | 字串屬性 |
output_element_type | ::mlir::TypeAttr | 任何類型屬性 |
shape_infer_pattern | ::mlir::StringAttr | 字串屬性 |
inputs_for_infer | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
運算元 | 描述 |
---|---|
輸入 |
任何類型值的張量或任何類型值的記憶體參考或無類型之變數 |
結果 | 描述 |
---|---|
輸出 |
任何類型值的張量或任何類型值的記憶體參考或無類型之變數 |
onnx.DFT
(ONNXDFTOp)ONNX DFT 運算
計算輸入的離散傅立葉變換 (DFT)。
假設輸入的形狀為 [M, N]
,其中 N
是計算 DFT 的維度,而 M
表示概念上的「所有其他維度」,則形狀為 [M, N]
的 DFT y[m, k]
定義為
而逆變換定義為
\[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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
inverse | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
onesided | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
輸入 |
bfloat16 類型值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量 |
dft_length |
32 位元無正負號整數值張量或 64 位元無正負號整數值張量或無類型 |
軸 |
64 位元無正負號整數值張量或無類型 |
結果 | 描述 |
---|---|
輸出 |
bfloat16 類型值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量 |
onnx.DFTV17
(ONNXDFTV17Op)ONNX DFT 運算
計算輸入的離散傅立葉變換。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
軸 | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
inverse | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
onesided | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
輸入 |
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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
dilations | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
group | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
kernel_shape | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
offset_group | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
pads | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
strides | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
運算元 | 描述 |
---|---|
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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
blocksize | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
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_scale
。x_scale
和 x_zero_point
的形狀必須相同,並且可以是每個張量/每層量化的純量,也可以是每個軸量化的 1 維張量。x_zero_point
和 x
的類型必須相同。x
和 y
的形狀必須相同。在反量化 int32 的情況下,沒有零點 (零點應為 0)。zero-point
通常不會用於 float8e4m3fn、float8e4m3fnuz、float8e5m2、float8e5m2fnuz 量化,但為了保持一致性,反量化公式仍保持不變,且 'x_scale' 仍會決定輸出類型。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
軸 | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
X |
16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量 |
結果 | 描述 |
---|---|
Y |
16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量 |
onnx.DictVectorizer
(ONNXDictVectorizerOp)ONNX DictVectorizer 運算
使用索引對應將字典轉換為陣列。
給定字典,會在對應於索引鍵類型的詞彙屬性中查閱每個索引鍵。然後,詞彙陣列中找到索引鍵的索引會用於索引輸出 1 維張量「Y」,並將字典「X」中找到的值插入其中。
輸入對應的索引鍵類型必須對應於定義詞彙屬性的元素類型。因此,輸出陣列的長度會等於索引對應向量參數的長度。輸入字典中的所有索引鍵都必須存在於索引對應向量中。對於輸入字典中的每個項目,請將其值插入輸出陣列中。輸出陣列中會將輸入字典中不存在的任何索引鍵設為零。
例如:如果將 string_vocabulary
參數設定為 [\"a\", \"c\", \"b\", \"z\"]
,則 {\"a\": 4, \"c\": 8}
的輸入會產生 [4, 8, 0, 0]
的輸出。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
int64_vocabulary | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
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::IntegerAttr | 64 位元帶符號整數屬性 |
group_id | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
資料 |
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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
軸 | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
資料 |
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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
A |
8 位元無符號整數值張量或 16 位元無符號整數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量或 8 位元無號整數值張量或 16 位元無號整數值張量或 32 位元無號整數值張量或 64 位元無號整數值張量或 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量或 bfloat16 型別值張量 |
B |
8 位元無符號整數值張量或 16 位元無符號整數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量或 8 位元無號整數值張量或 16 位元無號整數值張量或 32 位元無號整數值張量或 64 位元無號整數值張量或 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量或 bfloat16 型別值張量 |
結果 | 描述 |
---|---|
C |
8 位元無符號整數值張量或 16 位元無符號整數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量或 8 位元無號整數值張量或 16 位元無號整數值張量或 32 位元無號整數值張量或 64 位元無號整數值張量或 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量或 bfloat16 型別值張量 |
onnx.Dropout
(ONNXDropoutOp)ONNX Dropout 運算
Dropout 接受一個浮點數張量輸入、一個可選的輸入比率(浮點數純量)和一個可選的輸入 training_mode(布林純量)。它產生兩個張量輸出,output(浮點數張量)和 mask(可選的 Tensor<bool>
)。如果 training_mode
為 true,則輸出 Y 將會是隨機的 dropout;請注意,此 Dropout 會以下列方程式縮放遮罩的輸入資料,因此若要將訓練好的模型轉換為推論模式,使用者可以簡單地不傳遞 training_mode
輸入或將其設定為 false。
output = scale * data * mask,
其中
scale = 1. / (1. - ratio).
此運算子具有可選的輸入/輸出。請參閱 文件,以取得關於可選引數表示方式的更多詳細資訊。可以使用空字串來取代實際引數的名稱,以表示遺失的引數。尾隨的可選引數(後面沒有接著存在的引數)也可以直接省略。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
seed | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
資料 |
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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
x |
32 位元浮點數值張量 |
結果 | 描述 |
---|---|
y |
8 位元無號整數值的張量 |
y_scale |
32 位元浮點數值張量 |
y_zero_point |
8 位元無號整數值的張量 |
onnx.Einsum
(ONNXEinsumOp)ONNX Einsum 運算
形式為 term1, term2 -> output-term
的 einsum 會使用下列方程式產生輸出張量
output[output-term] = reduce-sum( input1[term1] * input2[term2] )
其中 reduce-sum 會對輸入項 (term1, term2) 中發生的所有未在 output-term 中發生的索引執行加總。
Einsum 運算子使用愛因斯坦求和慣例,評估一系列張量的代數張量運算。方程式字串包含一個以逗號分隔的小寫字母序列。每個項對應於一個運算元張量,並且項中的字元對應於運算元維度。
此序列後面可以加上 "->" 來分隔方程式的左側和右側。如果方程式包含 "->" 後面接著右側,則會執行愛因斯坦求和的明確(非傳統)形式,並且右側的索引會指出輸出張量的維度。在其他情況下,輸出索引會(隱含地)設定為方程式中正好出現一次的索引的字母排序序列。
當一個維度字元在左側重複時,它表示沿著該維度求和。
方程式可能包含省略號 ("…") 以啟用廣播。省略號必須指出固定的維度數。具體來說,方程式中每次出現省略號都必須表示相同的維度數。右側最多可以包含一個省略號。在隱含模式下,省略號維度會設定為輸出的開頭。方程式字串可能包含空格 (U+0020) 字元。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
equation | ::mlir::StringAttr | 字串屬性 |
運算元 | 描述 |
---|---|
輸入 |
8 位元無號整數值、16 位元無號整數值、32 位元無號整數值、64 位元無號整數值、8 位元無號整數值、16 位元無號整數值、32 位元無號整數值、64 位元無號整數值、16 位元浮點數值、32 位元浮點數值或 64 位元浮點數值的張量的變數 |
結果 | 描述 |
---|---|
輸出 |
8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量 |
onnx.Elu
(ONNXEluOp)ONNX Elu 運算
Elu 接受一個輸入資料 (Tensor
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
alpha | ::mlir::FloatAttr | 32 位元浮點屬性 |
運算元 | 描述 |
---|---|
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 相等運算
傳回對輸入張量 A
和 B
逐元素執行 equal
邏輯運算所產生的張量(支援 Numpy 風格的廣播)。
此運算子支援多向 (即 Numpy 式) 廣播;如需更多詳細資訊,請查看 文件。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
A |
1 位元無號整數值、8 位元無號整數值、16 位元無號整數值、32 位元無號整數值、64 位元無號整數值、8 位元無號整數值、16 位元無號整數值、32 位元無號整數值、64 位元無號整數值、16 位元浮點數值、32 位元浮點數值、64 位元浮點數值、bfloat16 類型值或字串類型值的張量 |
B |
1 位元無號整數值、8 位元無號整數值、16 位元無號整數值、32 位元無號整數值、64 位元無號整數值、8 位元無號整數值、16 位元無號整數值、32 位元無號整數值、64 位元無號整數值、16 位元浮點數值、32 位元浮點數值、64 位元浮點數值、bfloat16 類型值或字串類型值的張量 |
結果 | 描述 |
---|---|
C |
1 位元無號整數值張量 |
onnx.Erf
(ONNXErfOp)ONNX Erf 運算
逐元素計算給定輸入張量的誤差函數。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
輸入 |
8 位元無符號整數值張量或 16 位元無符號整數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量或 8 位元無號整數值張量或 16 位元無號整數值張量或 32 位元無號整數值張量或 64 位元無號整數值張量或 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量或 bfloat16 型別值張量 |
結果 | 描述 |
---|---|
輸出 |
8 位元無符號整數值張量或 16 位元無符號整數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量或 8 位元無號整數值張量或 16 位元無號整數值張量或 32 位元無號整數值張量或 64 位元無號整數值張量或 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量或 bfloat16 型別值張量 |
onnx.Exp
(ONNXExpOp)ONNX Exp 運算
逐元素計算給定輸入張量的指數。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
輸入 |
bfloat16 類型值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量 |
結果 | 描述 |
---|---|
輸出 |
bfloat16 類型值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量 |
onnx.Expand
(ONNXExpandOp)ONNX 展開運算
根據給定的形狀和廣播規則廣播輸入張量。廣播規則與 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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
輸入 |
8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 bfloat16 類型數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或字串類型數值張量或 1 位元無號整數數值張量或具有 32 位元浮點元素值的複數類型張量或具有 64 位元浮點元素值的複數類型張量 |
shape |
64 位元無號整數值張量 |
結果 | 描述 |
---|---|
輸出 |
8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 bfloat16 類型數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或字串類型數值張量或 1 位元無號整數數值張量或具有 32 位元浮點元素值的複數類型張量或具有 64 位元浮點元素值的複數類型張量 |
onnx.EyeLike
(ONNXEyeLikeOp)ONNX EyeLike 運算
產生一個 2D 張量(矩陣),對角線上為 1,其他位置為 0。僅支援 2D 張量,即輸入 T1 的秩必須為 2。輸出張量的形狀與輸入張量的形狀相同。資料類型可以由 'dtype' 引數指定。如果未指定 'dtype',則會使用輸入張量的類型。預設情況下,主對角線會填入 1,但屬性 'k' 可用於填入上方或下方的對角線。'dtype' 引數必須是 TensorProto 訊息中 'DataType' 列舉欄位中指定的資料類型之一,並且作為輸出類型必須有效。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
dtype | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
k | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
輸入 |
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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
inputdimensions | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
運算元 | 描述 |
---|---|
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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
軸 | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
輸入 |
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
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
X |
16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型數值張量 |
結果 | 描述 |
---|---|
Y |
16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型數值張量 |
onnx.GRU
(ONNXGRUOp)ONNX GRU 運算
計算單層 GRU。此運算子通常透過一些自訂實作(例如 CuDNN)來支援。
符號
X
- 輸入張量z
- 更新閘r
- 重置閘h
- 隱藏閘t
- 時間步長(t-1 表示前一個時間步長)W[zrh]
- 更新、重置和隱藏閘的 W 參數權重矩陣R[zrh]
- 更新、重置和隱藏閘的 R 遞迴權重矩陣Wb[zrh]
- 更新、重置和隱藏閘的 W 偏置向量Rb[zrh]
- 更新、重置和隱藏閘的 R 偏置向量WB[zrh]
- 反向更新、重置和隱藏閘的 W 參數權重矩陣RB[zrh]
- 反向更新、重置和隱藏閘的 R 遞迴權重矩陣WBb[zrh]
- 反向更新、重置和隱藏閘的 W 偏置向量RBb[zrh]
- 反向更新、重置和隱藏閘的 R 偏置向量H
- 隱藏狀態num_directions
- 如果 direction == bidirectional 則為 2,否則為 1激活函數
注意:以下為可選
Softsign(x) - x/(1 + | x | ) |
方程式 (預設值:f=Sigmoid,g=Tanh)
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
activation_alpha | ::mlir::ArrayAttr | 32 位元浮點陣列屬性 |
activation_beta | ::mlir::ArrayAttr | 32 位元浮點陣列屬性 |
activations | ::mlir::ArrayAttr | 字串陣列屬性 |
clip | ::mlir::FloatAttr | 32 位元浮點屬性 |
direction | ::mlir::StringAttr | 字串屬性 |
hidden_size | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
layout | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
linear_before_reset | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
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 接受兩個輸入 data
和 indices
,它們具有相同的階數 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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
軸 | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
資料 |
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 必須滿足。階數 r
和 q
之間沒有需要滿足的依賴條件
2) indices
張量和 data
張量形狀的前 b
個維度必須相等。
3) b < min(q, r) 必須滿足。
4) indices_shape[-1]
的值應介於 1(包含)和階數 r-b
(包含)之間
5) indices
中的所有值都應在大小為 s
的軸的邊界 [-s, s-1] 內 (即) -data_shape[i] <= indices[...,i] <= data_shape[i] - 1
。如果任何索引值超出範圍,則會發生錯誤。
輸出計算如下
通過將 indices
張量中的每個索引元組映射到輸入 data
的相應切片來獲得輸出張量。
1) 如果 indices_shape[-1] > r-b
=> 錯誤情況
2) 如果 indices_shape[-1] == r-b
,由於 indices
的階數為 q
,因此可以將 indices
視為包含維度為 r-b
的 1 維張量的 N
個 (q-b-1)
維張量,其中 N
是一個等於 1 和 indices_shape 的批次維度中所有元素的乘積的整數。讓我們將每個這樣的 r-b
階張量視為 indices_slice
。對應於 data[0:b-1,indices_slice]
的每個純量值都會填入 (q-b-1)
維張量的相應位置,以形成 output
張量(以下範例 1)
3) 如果 indices_shape[-1] < r-b
,由於 indices
的階數為 q
,因此可以將 indices
視為包含維度為 < r-b
的 1 維張量的 N
個 (q-b-1)
維張量。讓我們將每個這樣的張量視為 indices_slice
。對應於 data[0:b-1, indices_slice , :]
的每個張量切片都會填入 (q-b-1)
維張量的相應位置,以形成 output
張量(以下範例 2、3、4 和 5)
此運算子是 ScatterND
的逆運算。
範例 1
batch_dims = 0
data = [[0,1],[2,3]] # data_shape = [2, 2]
indices = [[0,0],[1,1]] # indices_shape = [2, 2]
output = [0,3] # output_shape = [2]
範例 2
batch_dims = 0
data = [[0,1],[2,3]] # data_shape = [2, 2]
indices = [[1],[0]] # indices_shape = [2, 1]
output = [[2,3],[0,1]] # output_shape = [2, 2]
範例 3
batch_dims = 0
data = [[[0,1],[2,3]],[[4,5],[6,7]]] # data_shape = [2, 2, 2]
indices = [[0,1],[1,0]] # indices_shape = [2, 2]
output = [[2,3],[4,5]] # output_shape = [2, 2]
範例 4
batch_dims = 0
data = [[[0,1],[2,3]],[[4,5],[6,7]]] # data_shape = [2, 2, 2]
indices = [[[0,1]],[[1,0]]] # indices_shape = [2, 1, 2]
output = [[[2,3]],[[4,5]]] # output_shape = [2, 1, 2]
範例 5
batch_dims = 1
data = [[[0,1],[2,3]],[[4,5],[6,7]]] # data_shape = [2, 2, 2]
indices = [[1],[0]] # indices_shape = [2, 1]
output = [[2,3],[4,5]] # output_shape = [2, 2]
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
batch_dims | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
資料 |
8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 bfloat16 類型數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或字串類型數值張量或 1 位元無號整數數值張量或具有 32 位元浮點元素值的複數類型張量或具有 64 位元浮點元素值的複數類型張量 |
indices |
64 位元無號整數值張量 |
結果 | 描述 |
---|---|
輸出 |
8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 bfloat16 類型數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或字串類型數值張量或 1 位元無號整數數值張量或具有 32 位元浮點元素值的複數類型張量或具有 64 位元浮點元素值的複數類型張量 |
onnx.Gather
(ONNXGatherOp)ONNX Gather 運算
給定階數 r >= 1 的 data
張量和階數 q 的 indices
張量,收集由 indices
索引的 data
的軸維度的條目(預設為最外層軸,即軸=0),並將它們連接到階數為 q + (r - 1) 的輸出張量中。
如果 axis = 0
,則令 k = indices[i_{0}, ..., i_{q-1}]
,然後 output[i_{0}, ..., i_{q-1}, j_{0}, ..., j_{r-2}] = input[k , j_{0}, ..., j_{r-2}]
data = [
[1.0, 1.2],
[2.3, 3.4],
[4.5, 5.7],
]
indices = [
[0, 1],
[1, 2],
]
output = [
[
[1.0, 1.2],
[2.3, 3.4],
],
[
[2.3, 3.4],
[4.5, 5.7],
],
]
如果 axis = 1
,則令 k = indices[i_{0}, ..., i_{q-1}]
,然後 output[j_{0}, i_{0}, ..., i_{q-1}, j_{1}, ..., j_{r-2}] = input[j_{0}, k, j_{1}, ..., j_{r-2}]
data = [
[1.0, 1.2, 1.9],
[2.3, 3.4, 3.9],
[4.5, 5.7, 5.9],
]
indices = [
[0, 2],
]
axis = 1,
output = [
[[1.0, 1.9]],
[[2.3, 3.9]],
[[4.5, 5.9]],
]
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
軸 | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
資料 |
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 接受一個輸入資料 (張量
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
approximate | ::mlir::StringAttr | 字串屬性 |
運算元 | 描述 |
---|---|
X |
16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型數值張量 |
結果 | 描述 |
---|---|
Y |
16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型數值張量 |
onnx.Gemm
(ONNXGemmOp)ONNX Gemm 運算
通用矩陣乘法:https://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms#Level_3
計算 Y = alpha * A’ * B’ + beta * C,其中輸入張量 A 的形狀為 (M, K) 或 (K, M),輸入張量 B 的形狀為 (K, N) 或 (N, K),輸入張量 C 可廣播為形狀 (M, N),且輸出張量 Y 的形狀為 (M, N)。如果屬性 transA 為非零值,則 A 會在計算前進行轉置,B 和 transB 也是如此。此運算符支援單向廣播 (張量 C 應可單向廣播為張量 A * B);如需更多詳細資訊,請查看 文件。此運算符具有可選的輸入/輸出。有關可選引數表示的更多詳細資訊,請參閱 文件。可以使用空字串來代替實際引數的名稱,以表示缺少引數。尾隨的可選引數 (後面沒有出現的引數) 也可以直接省略。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
alpha | ::mlir::FloatAttr | 32 位元浮點屬性 |
beta | ::mlir::FloatAttr | 32 位元浮點屬性 |
transA | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
transB | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
X |
16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量 |
結果 | 描述 |
---|---|
Y |
16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量 |
onnx.GlobalLpPool
(ONNXGlobalLpPoolOp)ONNX GlobalLpPool 運算
GlobalLpPool 消耗輸入張量 X 並在相同通道中的值上應用 lp 池化。這等同於核心大小等於輸入張量空間維度的 LpPool。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
p | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
X |
bfloat16 類型值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量 |
結果 | 描述 |
---|---|
Y |
bfloat16 類型值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量 |
onnx.GlobalMaxPool
(ONNXGlobalMaxPoolOp)ONNX GlobalMaxPool 運算
GlobalMaxPool 消耗輸入張量 X 並在相同通道中的值上應用最大池化。這等同於核心大小等於輸入張量空間維度的 MaxPool。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
X |
16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量 |
結果 | 描述 |
---|---|
Y |
16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量 |
onnx.Gradient
(ONNXGradientOp)ONNX Gradient 運算
Gradient 運算符會計算特定張量相對於其他某些張量的偏導數。此運算符廣泛用於基於梯度的訓練演算法。為了說明其用途,讓我們考慮一個計算圖
X -----.
|
v
W --> Conv --> H --> Gemm --> Y
^
|
Z
,其中 W 和 Z 是可訓練的張量。請注意,為了簡潔起見,省略了運算符的屬性。讓 dY/dW (dY/dZ) 為 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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
xs | ::mlir::ArrayAttr | 字串陣列屬性 |
y | ::mlir::StringAttr | 字串屬性 |
zs | ::mlir::ArrayAttr | 字串陣列屬性 |
運算元 | 描述 |
---|---|
輸入 |
可變長度的 8 位元無符號整數值張量或 16 位元無符號整數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量或 8 位元無符號整數值張量或 16 位元無符號整數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或字串類型值張量或 1 位元無符號整數值張量或具有 32 位元浮點元素值的複數類型張量或具有 64 位元浮點元素值的複數類型張量 |
結果 | 描述 |
---|---|
輸出 |
可變長度的 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量 |
onnx.Greater
(ONNXGreaterOp)ONNX Greater 運算
傳回在輸入張量 A
和 B
上逐元素執行 greater
邏輯運算 (具有 Numpy 樣式廣播支援) 後得到的張量。
此運算子支援多向 (即 Numpy 式) 廣播;如需更多詳細資訊,請查看 文件。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
A |
8 位元無符號整數值張量或 16 位元無符號整數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量或 8 位元無號整數值張量或 16 位元無號整數值張量或 32 位元無號整數值張量或 64 位元無號整數值張量或 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量或 bfloat16 型別值張量 |
B |
8 位元無符號整數值張量或 16 位元無符號整數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量或 8 位元無號整數值張量或 16 位元無號整數值張量或 32 位元無號整數值張量或 64 位元無號整數值張量或 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量或 bfloat16 型別值張量 |
結果 | 描述 |
---|---|
C |
1 位元無號整數值張量 |
onnx.GreaterOrEqual
(ONNXGreaterOrEqualOp)ONNX GreaterOrEqual 運算
傳回在輸入張量 A
和 B
上逐元素執行 greater_equal
邏輯運算 (具有 Numpy 樣式廣播支援) 後得到的張量。
此運算子支援多向 (即 Numpy 式) 廣播;如需更多詳細資訊,請查看 文件。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
A |
8 位元無符號整數值張量或 16 位元無符號整數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量或 8 位元無號整數值張量或 16 位元無號整數值張量或 32 位元無號整數值張量或 64 位元無號整數值張量或 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量或 bfloat16 型別值張量 |
B |
8 位元無符號整數值張量或 16 位元無符號整數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量或 8 位元無號整數值張量或 16 位元無號整數值張量或 32 位元無號整數值張量或 64 位元無號整數值張量或 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量或 bfloat16 型別值張量 |
結果 | 描述 |
---|---|
C |
1 位元無號整數值張量 |
onnx.GridSample
(ONNXGridSampleOp)ONNX GridSample 運算
給定輸入 X
和流場 grid
,使用來自 grid
的 X
值和像素位置計算輸出 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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
align_corners | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
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,
其中均值和變異數是針對每個群組的每個實例計算的,且 scale
和 bias
應針對每個群組的通道指定。群組數量 num_groups
應可被通道數量整除,以便每個群組的通道數量相同。
整體計算包含兩個階段:第一階段會正規化元素,使每個群組中每個實例的均值為零,變異數為單位,而第二階段會縮放並位移第一階段的結果。第一階段中使用的浮點數精度由 stash_type
屬性決定。例如,如果 stash_type
為 1,則運算符會將所有輸入變數轉換為 32 位元浮點數,執行計算,然後將正規化的結果轉換回 X
的原始類型。第二階段不依賴 stash_type
。
當群組數量與通道數量相同時,此運算符等同於 InstanceNormalization。當只有一個群組時,此運算符等同於 LayerNormalization。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
epsilon | ::mlir::FloatAttr | 32 位元浮點屬性 |
num_groups | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
stash_type | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
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,
其中均值和變異數是針對每個群組的每個實例計算的,且 scale
和 bias
應針對每個群組的通道指定。群組數量 num_groups
應可被通道數量整除,以便每個群組的通道數量相同。
當群組數量與通道數量相同時,此運算符等同於 InstanceNormalization。當只有一個群組時,此運算符等同於 LayerNormalization。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
epsilon | ::mlir::FloatAttr | 32 位元浮點屬性 |
num_groups | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
output_datatype | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
periodic | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
output_datatype | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
periodic | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
size |
32 位元無號整數值張量或 64 位元無號整數值張量 |
結果 | 描述 |
---|---|
輸出 |
8 位元無符號整數值張量或 16 位元無符號整數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量或 8 位元無號整數值張量或 16 位元無號整數值張量或 32 位元無號整數值張量或 64 位元無號整數值張量或 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量或 bfloat16 型別值張量 |
onnx.HardSigmoid
(ONNXHardSigmoidOp)ONNX HardSigmoid 運算
HardSigmoid 接受一個輸入資料(張量
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
alpha | ::mlir::FloatAttr | 32 位元浮點屬性 |
beta | ::mlir::FloatAttr | 32 位元浮點屬性 |
運算元 | 描述 |
---|---|
X |
16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量 |
結果 | 描述 |
---|---|
Y |
16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量 |
onnx.HardSwish
(ONNXHardSwishOp)ONNX HardSwish 運算
HardSwish 接受一個輸入資料(張量
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
X |
16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量 |
結果 | 描述 |
---|---|
Y |
16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量 |
onnx.Hardmax
(ONNXHardmaxOp)ONNX Hardmax 運算
此運算符會針對給定的輸入計算 hardmax 值
Hardmax(輸入中的元素, 軸) = 如果該元素是沿著指定軸的第一個最大值,則為 1,否則為 0
"axis" 屬性表示執行 Hardmax 的維度。輸出張量具有相同的形狀,並包含相應輸入的 Hardmax 值。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
軸 | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
輸入 |
16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型數值張量 |
結果 | 描述 |
---|---|
輸出 |
16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型數值張量 |
onnx.Identity
(ONNXIdentityOp)ONNX Identity 運算
Identity 運算符
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
輸入 |
8 位元無符號整數值的張量或 16 位元無符號整數值的張量或 32 位元無符號整數值的張量或 64 位元無符號整數值的張量或 8 位元無符號整數值的張量或 16 位元無符號整數值的張量或 32 位元無符號整數值的張量或 64 位元無符號整數值的張量或 bfloat16 類型值的張量或 16 位元浮點值的張量或 32 位元浮點值的張量或 64 位元浮點值的張量或字串類型值的張量或 1 位元無符號整數值的張量或具有 32 位元浮點元素值的複數類型張量或具有 64 位元浮點元素值的複數類型張量或 f8E4M3FN 類型值的張量或 f8E4M3FNUZ 類型值的張量或 f8E5M2 類型值的張量或 f8E5M2FNUZ 類型值的張量或 8 位元無符號整數值張量的 SeqType 值或 16 位元無符號整數值張量的 SeqType 值或 32 位元無符號整數值張量的 SeqType 值或 64 位元無符號整數值張量的 SeqType 值或 8 位元無符號整數值張量的 SeqType 值或 16 位元無符號整數值張量的 SeqType 值或 32 位元無符號整數值張量的 SeqType 值或 64 位元無符號整數值張量的 SeqType 值或 16 位元浮點值張量的 SeqType 值或 32 位元浮點值張量的 SeqType 值或 64 位元浮點值張量的 SeqType 值或字串類型值張量的 SeqType 值或 1 位元無符號整數值張量的 SeqType 值或具有 32 位元浮點元素值的複數類型張量 SeqType 值或具有 64 位元浮點元素值的複數類型張量 SeqType 值或 8 位元無符號整數值張量 SeqType 值的 OptType 或 16 位元無符號整數值張量 SeqType 值的 OptType 或 32 位元無符號整數值張量 SeqType 值的 OptType 或 64 位元無符號整數值張量 SeqType 值的 OptType 或 8 位元無符號整數值張量 SeqType 值的 OptType 或 16 位元無符號整數值張量 SeqType 值的 OptType 或 32 位元無符號整數值張量 SeqType 值的 OptType 或 64 位元無符號整數值張量 SeqType 值的 OptType 或 16 位元浮點值張量 SeqType 值的 OptType 或 32 位元浮點值張量 SeqType 值的 OptType 或 64 位元浮點值張量 SeqType 值的 OptType 或字串類型值張量 SeqType 值的 OptType 或 1 位元無符號整數值張量 SeqType 值的 OptType 或具有 32 位元浮點元素值的複數類型張量 SeqType 值的 OptType 或具有 64 位元浮點元素值的複數類型張量 SeqType 值的 OptType 或 8 位元無符號整數值張量的 OptType 或 16 位元無符號整數值張量的 OptType 或 32 位元無符號整數值張量的 OptType 或 64 位元無符號整數值張量的 OptType 或 8 位元無符號整數值張量的 OptType 或 16 位元無符號整數值張量的 OptType 或 32 位元無符號整數值張量的 OptType 或 64 位元無符號整數值張量的 OptType 或 16 位元浮點值張量的 OptType 或 32 位元浮點值張量的 OptType 或 64 位元浮點值張量的 OptType 或字串類型值張量的 OptType 或 1 位元無符號整數值張量的 OptType 或具有 32 位元浮點元素值的複數類型張量的 OptType 或具有 64 位元浮點元素值的複數類型張量的 OptType |
結果 | 描述 |
---|---|
輸出 |
8 位元無符號整數值的張量或 16 位元無符號整數值的張量或 32 位元無符號整數值的張量或 64 位元無符號整數值的張量或 8 位元無符號整數值的張量或 16 位元無符號整數值的張量或 32 位元無符號整數值的張量或 64 位元無符號整數值的張量或 bfloat16 類型值的張量或 16 位元浮點值的張量或 32 位元浮點值的張量或 64 位元浮點值的張量或字串類型值的張量或 1 位元無符號整數值的張量或具有 32 位元浮點元素值的複數類型張量或具有 64 位元浮點元素值的複數類型張量或 f8E4M3FN 類型值的張量或 f8E4M3FNUZ 類型值的張量或 f8E5M2 類型值的張量或 f8E5M2FNUZ 類型值的張量或 8 位元無符號整數值張量的 SeqType 值或 16 位元無符號整數值張量的 SeqType 值或 32 位元無符號整數值張量的 SeqType 值或 64 位元無符號整數值張量的 SeqType 值或 8 位元無符號整數值張量的 SeqType 值或 16 位元無符號整數值張量的 SeqType 值或 32 位元無符號整數值張量的 SeqType 值或 64 位元無符號整數值張量的 SeqType 值或 16 位元浮點值張量的 SeqType 值或 32 位元浮點值張量的 SeqType 值或 64 位元浮點值張量的 SeqType 值或字串類型值張量的 SeqType 值或 1 位元無符號整數值張量的 SeqType 值或具有 32 位元浮點元素值的複數類型張量 SeqType 值或具有 64 位元浮點元素值的複數類型張量 SeqType 值或 8 位元無符號整數值張量 SeqType 值的 OptType 或 16 位元無符號整數值張量 SeqType 值的 OptType 或 32 位元無符號整數值張量 SeqType 值的 OptType 或 64 位元無符號整數值張量 SeqType 值的 OptType 或 8 位元無符號整數值張量 SeqType 值的 OptType 或 16 位元無符號整數值張量 SeqType 值的 OptType 或 32 位元無符號整數值張量 SeqType 值的 OptType 或 64 位元無符號整數值張量 SeqType 值的 OptType 或 16 位元浮點值張量 SeqType 值的 OptType 或 32 位元浮點值張量 SeqType 值的 OptType 或 64 位元浮點值張量 SeqType 值的 OptType 或字串類型值張量 SeqType 值的 OptType 或 1 位元無符號整數值張量 SeqType 值的 OptType 或具有 32 位元浮點元素值的複數類型張量 SeqType 值的 OptType 或具有 64 位元浮點元素值的複數類型張量 SeqType 值的 OptType 或 8 位元無符號整數值張量的 OptType 或 16 位元無符號整數值張量的 OptType 或 32 位元無符號整數值張量的 OptType 或 64 位元無符號整數值張量的 OptType 或 8 位元無符號整數值張量的 OptType 或 16 位元無符號整數值張量的 OptType 或 32 位元無符號整數值張量的 OptType 或 64 位元無符號整數值張量的 OptType 或 16 位元浮點值張量的 OptType 或 32 位元浮點值張量的 OptType 或 64 位元浮點值張量的 OptType 或字串類型值張量的 OptType 或 1 位元無符號整數值張量的 OptType 或具有 32 位元浮點元素值的複數類型張量的 OptType 或具有 64 位元浮點元素值的複數類型張量的 OptType |
onnx.If
(ONNXIfOp)ONNX If 運算
If 條件式
特徵:AlwaysSpeculatableImplTrait
介面: ConditionallySpeculatable
、 HasOnnxSubgraphOpInterface
、 NoMemoryEffect (MemoryEffectOpInterface)
、 ResultTypeInferenceOpInterface
、 ShapeHelperOpInterface
、 ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
cond |
1 位元無號整數值張量 |
結果 | 描述 |
---|---|
輸出 |
8 位元無符號整數值的張量或 16 位元無符號整數值的張量或 32 位元無符號整數值的張量或 64 位元無符號整數值的張量或 8 位元無符號整數值的張量或 16 位元無符號整數值的張量或 32 位元無符號整數值的張量或 64 位元無符號整數值的張量或 bfloat16 類型值的張量或 16 位元浮點值的張量或 32 位元浮點值的張量或 64 位元浮點值的張量或字串類型值的張量或 1 位元無符號整數值的張量或具有 32 位元浮點元素值的複數類型張量或具有 64 位元浮點元素值的複數類型張量或 f8E4M3FN 類型值的張量或 f8E4M3FNUZ 類型值的張量或 f8E5M2 類型值的張量或 f8E5M2FNUZ 類型值的張量或 8 位元無符號整數值張量的 SeqType 值或 16 位元無符號整數值張量的 SeqType 值或 32 位元無符號整數值張量的 SeqType 值或 64 位元無符號整數值張量的 SeqType 值或 8 位元無符號整數值張量的 SeqType 值或 16 位元無符號整數值張量的 SeqType 值或 32 位元無符號整數值張量的 SeqType 值或 64 位元無符號整數值張量的 SeqType 值或 bfloat16 類型值張量的 SeqType 值或 16 位元浮點值張量的 SeqType 值或 32 位元浮點值張量的 SeqType 值或 64 位元浮點值張量的 SeqType 值或字串類型值張量的 SeqType 值或 1 位元無符號整數值張量的 SeqType 值或具有 32 位元浮點元素值的複數類型張量 SeqType 值或具有 64 位元浮點元素值的複數類型張量 SeqType 值或 f8E4M3FN 類型值張量的 SeqType 值或 f8E4M3FNUZ 類型值張量的 SeqType 值或 f8E5M2 類型值張量的 SeqType 值或 f8E5M2FNUZ 類型值張量的 SeqType 值或 8 位元無符號整數值張量 SeqType 值的 OptType 或 16 位元無符號整數值張量 SeqType 值的 OptType 或 32 位元無符號整數值張量 SeqType 值的 OptType 或 64 位元無符號整數值張量 SeqType 值的 OptType 或 8 位元無符號整數值張量 SeqType 值的 OptType 或 16 位元無符號整數值張量 SeqType 值的 OptType 或 32 位元無符號整數值張量 SeqType 值的 OptType 或 64 位元無符號整數值張量 SeqType 值的 OptType 或 bfloat16 類型值張量 SeqType 值的 OptType 或 16 位元浮點值張量 SeqType 值的 OptType 或 32 位元浮點值張量 SeqType 值的 OptType 或 64 位元浮點值張量 SeqType 值的 OptType 或字串類型值張量 SeqType 值的 OptType 或 1 位元無符號整數值張量 SeqType 值的 OptType 或具有 32 位元浮點元素值的複數類型張量 SeqType 值的 OptType 或具有 64 位元浮點元素值的複數類型張量 SeqType 值的 OptType 或 8 位元無符號整數值張量的 OptType 或 16 位元無符號整數值張量的 OptType 或 32 位元無符號整數值張量的 OptType 或 64 位元無符號整數值張量的 OptType 或 8 位元無符號整數值張量的 OptType 或 16 位元無符號整數值張量的 OptType 或 32 位元無符號整數值張量的 OptType 或 64 位元無符號整數值張量的 OptType 或 bfloat16 類型值張量的 OptType 或 16 位元浮點值張量的 OptType 或 32 位元浮點值張量的 OptType 或 64 位元浮點值張量的 OptType 或字串類型值張量的 OptType 或 1 位元無符號整數值張量的 OptType 或具有 32 位元浮點元素值的複數類型張量的 OptType 或具有 64 位元浮點元素值的複數類型張量的 OptType 或 f8E4M3FN 類型值張量的 OptType 或 f8E4M3FNUZ 類型值張量的 OptType 或 f8E5M2 類型值張量的 OptType 或 f8E5M2FNUZ 類型值張量的 OptType |
onnx.Imputer
(ONNXImputerOp)ONNX Imputer 運算
將等於一個值的輸入替換為另一個值,而保留所有其他元素不變。
此運算符通常用於替換遺失值,這些遺失值在某些情況下具有標準表示法,例如 -1、0、NaN 或某些極端值。
應該定義 imputed_value_floats 或 imputed_value_int64s 中的一個且僅一個 - 如果輸入張量保留浮點數,則為浮點數;如果輸入張量保留整數,則為整數。填補的值必須全部適合張量元素類型的寬度。應該定義 replaced_value_float 或 replaced_value_int64 中的一個且僅一個,具體取決於處理的是浮點數還是整數。
imputed_value 屬性長度可以為 1 個元素,也可以每個輸入特徵都有一個元素。
換句話說,如果輸入張量的形狀為 [*,F],則屬性陣列的長度可能是 1 或 F。如果為 1,則它會沿著最後一個維度廣播並應用於每個特徵。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
imputed_value_floats | ::mlir::ArrayAttr | 32 位元浮點陣列屬性 |
imputed_value_int64s | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
replaced_value_float | ::mlir::FloatAttr | 32 位元浮點屬性 |
replaced_value_int64 | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
epsilon | ::mlir::FloatAttr | 32 位元浮點屬性 |
運算元 | 描述 |
---|---|
輸入 |
16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量 |
scale |
16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量 |
B |
16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量 |
結果 | 描述 |
---|---|
輸出 |
16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量 |
onnx.IsInf
(ONNXIsInfOp)ONNX IsInf 運算
將無限大映射為 true,其他值映射為 false。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
detect_negative | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
detect_positive | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
X |
bfloat16 類型值張量,或 16 位元浮點值張量,或 32 位元浮點值張量,或 64 位元浮點值張量,或 f8E4M3FN 類型值張量,或 f8E4M3FNUZ 類型值張量,或 f8E5M2 類型值張量,或 f8E5M2FNUZ 類型值張量 |
結果 | 描述 |
---|---|
Y |
1 位元無號整數值張量 |
onnx.IsNaN
(ONNXIsNaNOp)ONNX IsNaN 運算
傳回輸入中哪些元素為 NaN。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
X |
bfloat16 類型值張量,或 16 位元浮點值張量,或 32 位元浮點值張量,或 64 位元浮點值張量,或 f8E4M3FN 類型值張量,或 f8E4M3FNUZ 類型值張量,或 f8E5M2 類型值張量,或 f8E5M2FNUZ 類型值張量 |
結果 | 描述 |
---|---|
Y |
1 位元無號整數值張量 |
onnx.LRN
(ONNXLRNOp)ONNX LRN 運算
在 AlexNet 論文中提出的局部回應正規化。它對局部輸入區域進行正規化。局部區域是跨通道定義的。對於形狀為 (N x C x D1 x D2, ..., Dk)
的張量中的元素 X[n, c, d1, ..., dk]
,它的區域是 {X[n, i, d1, ..., dk] | max(0, c - floor((size - 1) / 2)) <= i <= min(C - 1, c + ceil((size - 1) / 2))}
。
square_sum[n, c, d1, ..., dk] = sum(X[n, i, d1, ..., dk] ^ 2)
,其中 max(0, c - floor((size - 1) / 2)) <= i <= min(C - 1, c + ceil((size - 1) / 2))
。
Y[n, c, d1, ..., dk] = X[n, c, d1, ..., dk] / (bias + alpha / size * square_sum[n, c, d1, ..., dk] ) ^ beta
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
alpha | ::mlir::FloatAttr | 32 位元浮點屬性 |
beta | ::mlir::FloatAttr | 32 位元浮點屬性 |
bias | ::mlir::FloatAttr | 32 位元浮點屬性 |
size | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
X |
16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型數值張量 |
結果 | 描述 |
---|---|
Y |
16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型數值張量 |
onnx.LSTM
(ONNXLSTMOp)ONNX LSTM 運算
計算單層 LSTM。此運算符通常透過某些自訂實作(例如 CuDNN)來支援。
符號
X
- 輸入張量i
- 輸入閘o
- 輸出閘f
- 遺忘閘c
- 單元閘t
- 時間步長(t-1 表示前一個時間步長)W[iofc]
- 輸入、輸出、遺忘和單元閘的 W 參數權重矩陣R[iofc]
- 輸入、輸出、遺忘和單元閘的 R 遞迴權重矩陣Wb[iofc]
- 輸入、輸出、遺忘和單元閘的 W 偏權向量Rb[iofc]
- 輸入、輸出、遺忘和單元閘的 R 偏權向量P[iof]
- 輸入、輸出和遺忘閘的 P 窺孔權重向量WB[iofc]
- 後向輸入、輸出、遺忘和單元閘的 W 參數權重矩陣RB[iofc]
- 後向輸入、輸出、遺忘和單元閘的 R 遞迴權重矩陣WBb[iofc]
- 後向輸入、輸出、遺忘和單元閘的 W 偏權向量RBb[iofc]
- 後向輸入、輸出、遺忘和單元閘的 R 偏權向量PB[iof]
- 後向輸入、輸出和遺忘閘的 P 窺孔權重向量H
- 隱藏狀態num_directions
- 如果 direction == bidirectional 則為 2,否則為 1激活函數
注意:以下為可選
Softsign(x) - x/(1 + | x | ) |
方程式(預設:f=Sigmoid、g=Tanh、h=Tanh)
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
activation_alpha | ::mlir::ArrayAttr | 32 位元浮點陣列屬性 |
activation_beta | ::mlir::ArrayAttr | 32 位元浮點陣列屬性 |
activations | ::mlir::ArrayAttr | 字串陣列屬性 |
clip | ::mlir::FloatAttr | 32 位元浮點屬性 |
direction | ::mlir::StringAttr | 字串屬性 |
hidden_size | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
input_forget | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
layout | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
default_float | ::mlir::FloatAttr | 32 位元浮點屬性 |
default_int64 | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
default_string | ::mlir::StringAttr | 字串屬性 |
keys_floats | ::mlir::ArrayAttr | 32 位元浮點陣列屬性 |
keys_int64s | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
keys_strings | ::mlir::ArrayAttr | 字串陣列屬性 |
values_floats | ::mlir::ArrayAttr | 32 位元浮點陣列屬性 |
values_int64s | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
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]
。變數 Var
和 StdDev
分別代表變異數和標準差。第二個輸出是 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]]
,則 Mean
和 InvStdDev
的形狀為 [d[0], ..., d[axis-1], 1, ..., 1]
。Y
和 X
具有相同的形狀。此運算子支援單向廣播(張量 Scale
和 B
應該可以單向廣播到張量 X
);如需更多詳細資訊,請查看 文件。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
軸 | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
epsilon | ::mlir::FloatAttr | 32 位元浮點屬性 |
stash_type | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
target_layout | ::mlir::Attribute | 版面配置屬性 |
運算元 | 描述 |
---|---|
資料 |
16 位元浮點數或 32 位元浮點值張量 |
結果 | 描述 |
---|---|
輸出 |
16 位元浮點數或 32 位元浮點值張量 |
onnx.LeakyRelu
(ONNXLeakyReluOp)ONNX LeakyRelu 運算
LeakyRelu 接受輸入資料(張量
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
alpha | ::mlir::FloatAttr | 32 位元浮點屬性 |
運算元 | 描述 |
---|---|
X |
bfloat16 類型值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量 |
結果 | 描述 |
---|---|
Y |
bfloat16 類型值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量 |
onnx.Less
(ONNXLessOp)ONNX Less 運算
傳回在輸入張量 A
和 B
上以逐元素方式執行 less
邏輯運算(具有 Numpy 樣式的廣播支援)所產生的張量。
此運算子支援多向 (即 Numpy 式) 廣播;如需更多詳細資訊,請查看 文件。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
A |
8 位元無符號整數值張量或 16 位元無符號整數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量或 8 位元無號整數值張量或 16 位元無號整數值張量或 32 位元無號整數值張量或 64 位元無號整數值張量或 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量或 bfloat16 型別值張量 |
B |
8 位元無符號整數值張量或 16 位元無符號整數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量或 8 位元無號整數值張量或 16 位元無號整數值張量或 32 位元無號整數值張量或 64 位元無號整數值張量或 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量或 bfloat16 型別值張量 |
結果 | 描述 |
---|---|
C |
1 位元無號整數值張量 |
onnx.LessOrEqual
(ONNXLessOrEqualOp)ONNX LessOrEqual 運算
傳回在輸入張量 A
和 B
上以逐元素方式執行 less_equal
邏輯運算(具有 Numpy 樣式的廣播支援)所產生的張量。
此運算子支援多向 (即 Numpy 式) 廣播;如需更多詳細資訊,請查看 文件。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
A |
8 位元無符號整數值張量或 16 位元無符號整數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量或 8 位元無號整數值張量或 16 位元無號整數值張量或 32 位元無號整數值張量或 64 位元無號整數值張量或 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量或 bfloat16 型別值張量 |
B |
8 位元無符號整數值張量或 16 位元無符號整數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量或 8 位元無號整數值張量或 16 位元無號整數值張量或 32 位元無號整數值張量或 64 位元無號整數值張量或 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量或 bfloat16 型別值張量 |
結果 | 描述 |
---|---|
C |
1 位元無號整數值張量 |
onnx.LinearClassifier
(ONNXLinearClassifierOp)ONNX 線性分類器運算
線性分類器
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
classlabels_ints | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
classlabels_strings | ::mlir::ArrayAttr | 字串陣列屬性 |
coefficients | ::mlir::ArrayAttr | 32 位元浮點陣列屬性 |
intercepts | ::mlir::ArrayAttr | 32 位元浮點陣列屬性 |
multi_class | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
coefficients | ::mlir::ArrayAttr | 32 位元浮點陣列屬性 |
intercepts | ::mlir::ArrayAttr | 32 位元浮點陣列屬性 |
post_transform | ::mlir::StringAttr | 字串屬性 |
targets | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
X |
32 位元浮點數值張量或 64 位元浮點數值張量或 64 位元無號整數值張量或 32 位元無號整數值張量 |
結果 | 描述 |
---|---|
Y |
32 位元浮點數值張量 |
onnx.Log
(ONNXLogOp)ONNX Log 運算
逐元素計算給定輸入張量的自然對數。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
輸入 |
16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型數值張量 |
結果 | 描述 |
---|---|
輸出 |
16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型數值張量 |
onnx.LogSoftmax
(ONNXLogSoftmaxOp)ONNX LogSoftmax 運算
此運算子計算給定輸入的 softmax 值的對數。
LogSoftmax(input, axis) = Log(Softmax(input, axis=axis))
"axis" 屬性表示執行 LogSoftmax 的維度。輸出張量具有相同的形狀,並包含對應輸入的 LogSoftmax 值。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
軸 | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
輸入 |
16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型數值張量 |
結果 | 描述 |
---|---|
輸出 |
16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型數值張量 |
onnx.Loop
(ONNXLoopOp)ONNX Loop 運算
通用的迴圈結構。此迴圈有多個終止條件
1) 迭代次數。在運行時指定的迭代次數。通過指定輸入 M 來設定。可選。設定為空字串以省略。請注意,靜態迭代次數(在圖形建構時指定)可以通過為輸入 M 傳入常數節點來指定。2) 迴圈終止條件。這是運算子的輸入,用於決定是否執行第一次迭代,以及主體圖的迴圈攜帶依賴項。無論是否提供此輸入,主體圖都必須產生條件變數的值。
下表總結了此運算子的操作模式及其等效的 C 程式碼
運算子輸入定義為 (max_trip_count, condition_var)。
input ("", ""): for (int i=0; ; ++i) { cond = … // 請注意,此值會被忽略,但主體中是必需的 }
input ("", cond) // 請注意,這類似於 while 迴圈 bool cond = …; for (int i=0; cond; ++i) { cond = …; }
input ("", 1) // 請注意,這類似於 do-while 迴圈 bool cond = true for (int i=0; cond; ++i) { cond = …; }
input (trip_count, "") // 請注意,這類似於 for 迴圈 int trip_count = … for (int i=0; i < trip_count; ++i) { cond = …; // 被忽略 }
input (trip_count, cond) int trip_count = …; bool cond = …; for (int i=0; i < trip_count && cond; ++i) { cond = …; }
範例用法 - 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
介面: ConditionallySpeculatable
、 HasOnnxSubgraphOpInterface
、 NoMemoryEffect (MemoryEffectOpInterface)
、 ResultTypeInferenceOpInterface
、 ShapeHelperOpInterface
、 ShapeInferenceOpInterface
效果: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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
軸 | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
p | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
輸入 |
16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量 |
結果 | 描述 |
---|---|
輸出 |
16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量 |
onnx.LpPool
(ONNXLpPoolOp)ONNX LpPool 運算
LpPool 消耗輸入張量 X,並根據核心大小、步幅大小和填充長度,在張量上套用 Lp 池化。 Lp 池化包括根據核心大小計算輸入張量子集的全部值的 Lp 範數,並將資料向下取樣到輸出張量 Y 中以供進一步處理。輸出空間形狀將遵循
output_spatial_shape[i] = floor((input_spatial_shape[i] + pad_shape[i] - {kernelSpatialShape}) / strides_spatial_shape[i] + 1)
或
output_spatial_shape[i] = ceil((input_spatial_shape[i] + pad_shape[i] - {kernelSpatialShape}) / strides_spatial_shape[i] + 1)
如果啟用 ceil_mode,則 pad_shape[i]
是沿著軸 i
的填充總和。
auto_pad
是一個已過時的屬性。如果您目前正在使用它們,則輸出空間形狀將如下所示
VALID: output_spatial_shape[i] = ceil((input_spatial_shape[i] - {kernelSpatialShape} + 1) / strides_spatial_shape[i])
SAME_UPPER or SAME_LOWER: output_spatial_shape[i] = ceil(input_spatial_shape[i] / strides_spatial_shape[i])
如果 SAME_UPPER
或 SAME_LOWER
,則填補形狀將如下
pad_shape[i] = (output_spatial_shape[i] - 1) * strides_spatial_shape[i] + {kernelSpatialShape} - input_spatial_shape[i]
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
auto_pad | ::mlir::StringAttr | 字串屬性 |
ceil_mode | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
dilations | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
kernel_shape | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
p | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
pads | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
strides | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
運算元 | 描述 |
---|---|
X |
16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量 |
結果 | 描述 |
---|---|
Y |
16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量 |
onnx.MatMulInteger
(ONNXMatMulIntegerOp)ONNX MatMulInteger 運算
表現得像 numpy.matmul 的矩陣乘積。乘積絕不能溢位。只有在 32 位元時,累加才可能溢位。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
A |
8 位元無號整數值張量或 8 位元無正負號整數值張量 |
B |
8 位元無號整數值張量或 8 位元無正負號整數值張量 |
a_zero_point |
8 位元無號整數值張量或 8 位元無正負號整數值張量或無類型 |
b_zero_point |
8 位元無號整數值張量或 8 位元無正負號整數值張量或無類型 |
結果 | 描述 |
---|---|
Y |
32 位元無號整數值張量 |
onnx.MatMul
(ONNXMatMulOp)ONNX MatMul 運算
表現得像 numpy.matmul 的矩陣乘積。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
A |
16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量或 bfloat16 類型值張量 |
B |
16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量或 bfloat16 類型值張量 |
結果 | 描述 |
---|---|
Y |
16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量或 bfloat16 類型值張量 |
onnx.Max
(ONNXMaxOp)ONNX Max 運算
每個輸入張量的逐元素最大值(支援 Numpy 式廣播)。所有輸入和輸出都必須具有相同的資料類型。此運算子支援多方向(即,Numpy 式)廣播;如需更多詳細資訊,請查看 文件。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
data_0 |
8 位元無號整數值張量、16 位元無號整數值張量、32 位元無號整數值張量、64 位元無號整數值張量、8 位元無符號整數值張量、16 位元無符號整數值張量、32 位元無符號整數值張量、64 位元無符號整數值張量、16 位元浮點數值張量、32 位元浮點數值張量、64 位元浮點數值張量或 bfloat16 類型值的張量的變數 |
結果 | 描述 |
---|---|
max |
8 位元無符號整數值張量或 16 位元無符號整數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量或 8 位元無號整數值張量或 16 位元無號整數值張量或 32 位元無號整數值張量或 64 位元無號整數值張量或 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量或 bfloat16 型別值張量 |
onnx.MaxPool
(ONNXMaxPoolOp)ONNX MaxPool 運算
MaxPool 消耗輸入張量 X,並根據核心大小、步幅大小和填充長度,在張量上套用最大池化。最大池化包括根據核心大小計算輸入張量子集的全部值的最大值,並將資料向下取樣到輸出張量 Y 中以供進一步處理。輸出空間形狀的計算方式不同,具體取決於是否使用了明確的填充(其中使用了 pads),或使用了自動填充(其中使用了 auto_pad)。使用明確的填充 (https://pytorch.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_UPPER
或 SAME_LOWER
,則填補形狀將如下
pad_shape[i] = (output_spatial_shape[i] - 1) * strides_spatial_shape[i] + ((kernel_spatial_shape[i] - 1) * dilations[i] + 1) - input_spatial_shape[i]
每個池化視窗的輸出是元素的最大值,不包括填充。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
auto_pad | ::mlir::StringAttr | 字串屬性 |
ceil_mode | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
dilations | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
kernel_shape | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
pads | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
storage_order | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
strides | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
運算元 | 描述 |
---|---|
X |
16 位元浮點數值張量、32 位元浮點數值張量、64 位元浮點數值張量、8 位元無符號整數值張量或 8 位元無號整數值張量 |
結果 | 描述 |
---|---|
Y |
16 位元浮點數值張量、32 位元浮點數值張量、64 位元浮點數值張量、8 位元無符號整數值張量或 8 位元無號整數值張量 |
Indices |
64 位元無正負號整數值張量或無類型 |
onnx.MaxPoolSingleOut
(ONNXMaxPoolSingleOutOp)ONNX 最大池化運算,具有單一輸出。
ONNX 最大池化運算,具有單一輸出。如需最大池化語意的完整描述,請參閱 ONNXMaxPoolOp。
此運算不是標準的一部分,並且新增用於協助 onnx-mlir。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
auto_pad | ::mlir::StringAttr | 字串屬性 |
ceil_mode | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
dilations | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
kernel_shape | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
pads | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
storage_order | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
strides | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
運算元 | 描述 |
---|---|
X |
任何型別值或任何型別值張量的記憶體參考 |
結果 | 描述 |
---|---|
o_Y |
任何型別值或任何型別值張量的記憶體參考 |
onnx.MaxRoiPool
(ONNXMaxRoiPoolOp)ONNX MaxRoiPool 運算
ROI 最大池化消耗輸入張量 X 和感興趣區域 (RoI),以在每個 RoI 上套用最大池化,從而產生形狀為 (num_rois, channels, pooled_shape[0], pooled_shape[1]) 的輸出 4D 張量。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
pooled_shape | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
spatial_scale | ::mlir::FloatAttr | 32 位元浮點屬性 |
運算元 | 描述 |
---|---|
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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
kernel_shape | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
pads | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
strides | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
運算元 | 描述 |
---|---|
X |
16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量 |
I |
64 位元無號整數值張量 |
output_shape |
64 位元無正負號整數值張量或無類型 |
結果 | 描述 |
---|---|
輸出 |
16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量 |
onnx.Mean
(ONNXMeanOp)ONNX Mean 運算
每個輸入張量的逐元素平均值(支援 Numpy 式廣播)。所有輸入和輸出都必須具有相同的資料類型。此運算子支援多方向(即,Numpy 式)廣播;如需更多詳細資訊,請查看 文件。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
data_0 |
16 位元浮點數值張量、32 位元浮點數值張量、64 位元浮點數值張量或 bfloat16 類型值的張量的變數 |
結果 | 描述 |
---|---|
mean |
16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型數值張量 |
onnx.MeanVarianceNormalization
(ONNXMeanVarianceNormalizationOp)ONNX MeanVarianceNormalization 運算
平均變異數正規化函數:使用公式 (X-EX)/sqrt(E(X-EX)^2)
對輸入張量 X 執行平均變異數正規化
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
axes | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
運算元 | 描述 |
---|---|
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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
output_datatype | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
data_0 |
8 位元無號整數值張量、16 位元無號整數值張量、32 位元無號整數值張量、64 位元無號整數值張量、8 位元無符號整數值張量、16 位元無符號整數值張量、32 位元無符號整數值張量、64 位元無符號整數值張量、16 位元浮點數值張量、32 位元浮點數值張量、64 位元浮點數值張量或 bfloat16 類型值的張量的變數 |
結果 | 描述 |
---|---|
min |
8 位元無符號整數值張量或 16 位元無符號整數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量或 8 位元無號整數值張量或 16 位元無號整數值張量或 32 位元無號整數值張量或 64 位元無號整數值張量或 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量或 bfloat16 型別值張量 |
onnx.Mish
(ONNXMishOp)ONNX Mish 運算
Mish:一種自我正規化的非單調神經激活函數。
使用公式在輸入張量 X 上逐元素執行線性單元
mish(x) = x * tanh(softplus(x)) = x * tanh(ln(1 + e^{x}))
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
X |
16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量 |
結果 | 描述 |
---|---|
Y |
16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量 |
onnx.Mod
(ONNXModOp)ONNX Mod 運算
執行逐元素二元模數運算(支援 Numpy 式廣播)。餘數的符號與除數的符號相同。
Mod 運算子也可以像 C fmod() 或 numpy.fmod 一樣運作。在這種情況下,餘數的符號將與被除數的符號相同(與整數模數相反)。為了強制產生類似 numpy.fmod() 的行為,提供了一個 ‘fmod’ 屬性。此屬性預設設定為 0,導致行為與整數模數相同。將此屬性設定為 1 會導致餘數的計算方式與 numpy.fmod() 類似。
如果輸入類型為浮點數,則必須將 fmod
屬性設定為 1。
如果被除數為零,則結果將取決於平台。
此運算子支援多向 (即 Numpy 式) 廣播;如需更多詳細資訊,請查看 文件。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
fmod | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
alpha | ::mlir::FloatAttr | 32 位元浮點屬性 |
beta | ::mlir::FloatAttr | 32 位元浮點屬性 |
mode | ::mlir::StringAttr | 字串屬性 |
norm_coefficient | ::mlir::FloatAttr | 32 位元浮點屬性 |
運算元 | 描述 |
---|---|
R |
32 位元浮點值張量或 64 位元浮點值張量 |
T |
64 位元無號整數值張量 |
輸入 |
32 位元浮點值張量或 64 位元浮點值張量的變數 |
結果 | 描述 |
---|---|
輸出 |
32 位元浮點值張量或 64 位元浮點值張量的變數 |
onnx.Mul
(ONNXMulOp)ONNX Mul 運算
執行逐元素二元乘法(支援 Numpy 式廣播)。
此運算子支援多向 (即 Numpy 式) 廣播;如需更多詳細資訊,請查看 文件。
(Opset 14 變更):擴充支援的型別,以包含 uint8、int8、uint16 和 int16。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
A |
8 位元無符號整數值張量或 16 位元無符號整數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量或 8 位元無號整數值張量或 16 位元無號整數值張量或 32 位元無號整數值張量或 64 位元無號整數值張量或 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量或 bfloat16 型別值張量 |
B |
8 位元無符號整數值張量或 16 位元無符號整數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量或 8 位元無號整數值張量或 16 位元無號整數值張量或 32 位元無號整數值張量或 64 位元無號整數值張量或 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量或 bfloat16 型別值張量 |
結果 | 描述 |
---|---|
C |
8 位元無符號整數值張量或 16 位元無符號整數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量或 8 位元無號整數值張量或 16 位元無號整數值張量或 32 位元無號整數值張量或 64 位元無號整數值張量或 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量或 bfloat16 型別值張量 |
onnx.Multinomial
(ONNXMultinomialOp)ONNX 多項式運算
根據每個可能結果的機率,從多項式分佈生成樣本張量。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
dtype | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
sample_size | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
seed | ::mlir::FloatAttr | 32 位元浮點屬性 |
運算元 | 描述 |
---|---|
輸入 |
16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量 |
結果 | 描述 |
---|---|
輸出 |
32 位元無號整數值張量或 64 位元無號整數值張量 |
onnx.Neg
(ONNXNegOp)ONNX Neg 運算
Neg 接受一個輸入資料(張量
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
X |
32 位元浮點數值張量、32 位元無符號整數值張量、8 位元無符號整數值張量、16 位元無符號整數值張量、64 位元無符號整數值張量、16 位元浮點數值張量、64 位元浮點數值張量或 bfloat16 類型數值張量 |
結果 | 描述 |
---|---|
Y |
32 位元浮點數值張量、32 位元無符號整數值張量、8 位元無符號整數值張量、16 位元無符號整數值張量、64 位元無符號整數值張量、16 位元浮點數值張量、64 位元浮點數值張量或 bfloat16 類型數值張量 |
onnx.NegativeLogLikelihoodLoss
(ONNXNegativeLogLikelihoodLossOp)ONNX 負對數概似損失運算
NegativeLogLikelihoodLoss 運算子計算(加權)負對數概似損失。其 "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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
ignore_index | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
center_point_box | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
X |
8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 bfloat16 類型數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或字串類型數值張量或 1 位元無號整數數值張量或具有 32 位元浮點元素值的複數類型張量或具有 64 位元浮點元素值的複數類型張量 |
結果 | 描述 |
---|---|
Y |
64 位元無號整數值張量 |
onnx.NoValue
(ONNXNoneOp)表示不存在值的運算。
此運算可用於表示不存在的值。它通常用作具有可選參數的運算子的引數。
範例
%cst = "onnx.NoValue"() {value} : () -> none
%0, %1 = "onnx.Split"(%arg0, %cst) { axis=1 : si64 } : (tensor<?xf32>, none) -> (tensor<*xf32>, tensor<*xf32>)
此運算不是標準的一部分,並且新增用於協助 onnx-mlir。
特徵:AlwaysSpeculatableImplTrait
, ConstantLike
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
value | ::mlir::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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
norm | ::mlir::StringAttr | 字串屬性 |
運算元 | 描述 |
---|---|
X |
32 位元浮點數值張量或 64 位元浮點數值張量或 64 位元無號整數值張量或 32 位元無號整數值張量 |
結果 | 描述 |
---|---|
Y |
32 位元浮點數值張量 |
onnx.Not
(ONNXNotOp)ONNX Not 運算
傳回輸入張量的逐元素否定。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
X |
1 位元無號整數值張量 |
結果 | 描述 |
---|---|
Y |
1 位元無號整數值張量 |
onnx.OneHotEncoder
(ONNXOneHotEncoderOp)ONNX OneHotEncoder 運算
將每個輸入元素替換為一個 1 和 0 的陣列,其中單個 1 放置在傳入的類別索引處。總類別計數將決定輸出陣列 Y 的額外維度大小。
例如,如果我們傳遞一個單值為 4 的張量,且類別計數為 8,則輸出將是一個包含 [0,0,0,0,1,0,0,0]
的張量。
此運算子假設每個輸入特徵都來自同一組類別。
如果輸入是浮點數、int32 或雙精度數的張量,則資料將轉換為整數,並且 cats_int64s 類別清單將用於查詢。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
cats_int64s | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
cats_strings | ::mlir::ArrayAttr | 字串陣列屬性 |
zeros | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
軸 | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
indices |
8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量 |
depth |
8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量 |
values |
8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或字串類型數值張量或 1 位元無號整數數值張量或具有 32 位元浮點元素值的複數類型張量或具有 64 位元浮點元素值的複數類型張量 |
結果 | 描述 |
---|---|
輸出 |
8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或字串類型數值張量或 1 位元無號整數數值張量或具有 32 位元浮點元素值的複數類型張量或具有 64 位元浮點元素值的複數類型張量 |
onnx.OptionalGetElement
(ONNXOptionalGetElementOp)ONNX OptionalGetElement 運算
如果輸入是張量或序列類型,則傳回輸入。如果輸入是選用類型,則輸出輸入中的元素。如果輸入是空的選用類型(即沒有元素),則會發生錯誤,且在此情況下行為未定義。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
輸入 |
8 位元無號整數值張量的序列型別選項型別或 16 位元無號整數值張量的序列型別選項型別或 32 位元無號整數值張量的序列型別選項型別或 64 位元無號整數值張量的序列型別選項型別或 8 位元無符號整數值張量的序列型別選項型別或 16 位元無符號整數值張量的序列型別選項型別或 32 位元無符號整數值張量的序列型別選項型別或 64 位元無符號整數值張量的序列型別選項型別或 16 位元浮點數值張量的序列型別選項型別或 32 位元浮點數值張量的序列型別選項型別或 64 位元浮點數值張量的序列型別選項型別或字串型別值張量的序列型別選項型別或 1 位元無符號整數值張量的序列型別選項型別或具有 32 位元浮點數元素的複數型別張量的序列型別選項型別或具有 64 位元浮點數元素的複數型別張量的序列型別選項型別或 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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果: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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果: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 或運算
傳回對輸入張量 A
和 B
執行逐元素邏輯 or
運算後產生的張量(支援 NumPy 風格的廣播)。
此運算子支援多向 (即 Numpy 式) 廣播;如需更多詳細資訊,請查看 文件。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
A |
1 位元無號整數值張量 |
B |
1 位元無號整數值張量 |
結果 | 描述 |
---|---|
C |
1 位元無號整數值張量 |
onnx.PRelu
(ONNXPReluOp)ONNX PRelu 運算
PRelu 接受輸入資料(張量
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
X |
bfloat16 類型值的張量,或 16 位元浮點數值的張量,或 32 位元浮點數值的張量,或 64 位元浮點數值的張量,或 32 位元無號整數值的張量,或 64 位元無號整數值的張量,或 32 位元無號整數值的張量,或 64 位元無號整數值的張量 |
斜率 |
bfloat16 類型值的張量,或 16 位元浮點數值的張量,或 32 位元浮點數值的張量,或 64 位元浮點數值的張量,或 32 位元無號整數值的張量,或 64 位元無號整數值的張量,或 32 位元無號整數值的張量,或 64 位元無號整數值的張量 |
結果 | 描述 |
---|---|
Y |
bfloat16 類型值的張量,或 16 位元浮點數值的張量,或 32 位元浮點數值的張量,或 64 位元浮點數值的張量,或 32 位元無號整數值的張量,或 64 位元無號整數值的張量,或 32 位元無號整數值的張量,或 64 位元無號整數值的張量 |
onnx.Pad
(ONNXPadOp)ONNX Pad 運算
給定一個包含要填充之資料的張量(data
),一個包含軸的起始和結束填充值數量的張量(pads
),(可選)一個 mode
,以及(可選)constant_value
,會產生一個填充張量(output
)。
支援的三種 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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果: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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果: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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果: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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果: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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
mode | ::mlir::StringAttr | 字串屬性 |
pads | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
value | ::mlir::FloatAttr | 32 位元浮點屬性 |
運算元 | 描述 |
---|---|
資料 |
16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量 |
結果 | 描述 |
---|---|
輸出 |
16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量 |
onnx.Pow
(ONNXPowOp)ONNX Pow 運算
Pow 接受輸入資料(張量
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
X |
32 位元無號整數值的張量,或 64 位元無號整數值的張量,或 16 位元浮點數值的張量,或 32 位元浮點數值的張量,或 64 位元浮點數值的張量,或 bfloat16 類型值的張量 |
Y |
8 位元無符號整數值張量或 16 位元無符號整數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量或 8 位元無號整數值張量或 16 位元無號整數值張量或 32 位元無號整數值張量或 64 位元無號整數值張量或 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量或 bfloat16 型別值張量 |
結果 | 描述 |
---|---|
Z |
32 位元無號整數值的張量,或 64 位元無號整數值的張量,或 16 位元浮點數值的張量,或 32 位元浮點數值的張量,或 64 位元浮點數值的張量,或 bfloat16 類型值的張量 |
onnx.PrintSignature
(ONNXPrintSignatureOp)ONNX 運算以列印其輸入運算元的類型簽章
列印運算的輸入運算元的類型簽章。此運算提早引入,以便保留原始 ONNX 運算的名稱。
此運算不是標準的一部分,並且新增用於協助 onnx-mlir。
屬性 | MLIR 型別 | 描述 |
---|---|---|
op_name | ::mlir::StringAttr | 字串屬性 |
運算元 | 描述 |
---|---|
輸入 |
任何類型值的張量的變數或無類型 |
onnx.QLinearConv
(ONNXQLinearConvOp)ONNX QLinearConv 運算
卷積運算子使用量化的輸入張量、其比例和零點、量化的篩選器、其比例和零點,以及輸出的比例和零點,並計算量化的輸出。每個比例和零點對必須具有相同的形狀。這表示它們必須是純量(每個張量)或一維張量(每個輸出通道)。每個輸入或輸出及其相關的零點必須具有相同的類型。當存在偏差時,必須使用比例 = 輸入比例 * 權重比例量化,且零點為 0。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
auto_pad | ::mlir::StringAttr | 字串屬性 |
dilations | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
group | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
kernel_shape | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
pads | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
strides | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
運算元 | 描述 |
---|---|
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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
a |
8 位元無號整數值張量或 8 位元無正負號整數值張量 |
a_scale |
32 位元浮點數值張量 |
a_zero_point |
8 位元無號整數值張量或 8 位元無正負號整數值張量 |
b |
8 位元無號整數值張量或 8 位元無正負號整數值張量 |
b_scale |
32 位元浮點數值張量 |
b_zero_point |
8 位元無號整數值張量或 8 位元無正負號整數值張量 |
y_scale |
32 位元浮點數值張量 |
y_zero_point |
8 位元無號整數值張量或 8 位元無正負號整數值張量 |
結果 | 描述 |
---|---|
y |
8 位元無號整數值張量或 8 位元無正負號整數值張量 |
onnx.QuantizeLinear
(ONNXQuantizeLinearOp)ONNX QuantizeLinear 運算
線性量化運算子。它使用高精度張量、比例和零點來計算低精度/量化張量。比例因子和零點必須具有相同的形狀,並且可以是每個張量/每個層量化的純量,或每個軸量化的 1 維張量。量化公式為 y = saturate ((x / y_scale) + y_zero_point)
。對於飽和,如果它是 uint8,則飽和到 [0, 255],如果它是 int8,則飽和到 [-128, 127]。對於 (x / y_scale),它是捨入到最接近的偶數。有關詳細資訊,請參閱 https://en.wikipedia.org/wiki/Rounding。'y_zero_point' 和 'y' 必須具有相同的類型。'y_zero_point' 通常不用於量化為 float8e4m3fn、float8e4m3fnuz、float8e5m2、float8e5m2fnuz,但為了保持一致性,量化公式保持不變,並且屬性 'y_zero_point' 的類型仍然決定量化類型。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
軸 | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
saturate | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
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]
。變數 Var
和 StdDev
分別代表近似變異數和標準差。根據 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]]
,則 Mean
和 InvStdDev
的形狀為 [d[0], ..., d[axis-1], 1, ..., 1]
。Y
和 X
具有相同的形狀。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
軸 | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
epsilon | ::mlir::FloatAttr | 32 位元浮點屬性 |
stash_type | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
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)來支持。
符號
X
- 輸入張量i
- 輸入閘t
- 時間步長(t-1 表示前一個時間步長)Wi
- 輸入閘的 W 參數權重矩陣Ri
- 輸入閘的 R 遞迴權重矩陣Wbi
- 輸入閘的 W 參數偏置向量Rbi
- 輸入閘的 R 參數偏置向量WBi
- 向後輸入閘的 W 參數權重矩陣RBi
- 向後輸入閘的 R 遞迴權重矩陣WBbi
- 向後輸入閘的 WR 偏置向量RBbi
- 向後輸入閘的 RR 偏置向量H
- 隱藏狀態num_directions
- 如果 direction == bidirectional 則為 2,否則為 1激活函數
注意:以下為可選
Softsign(x) - x/(1 + | x | ) |
方程式 (預設:f=Tanh)
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
activation_alpha | ::mlir::ArrayAttr | 32 位元浮點陣列屬性 |
activation_beta | ::mlir::ArrayAttr | 32 位元浮點陣列屬性 |
activations | ::mlir::ArrayAttr | 字串陣列屬性 |
clip | ::mlir::FloatAttr | 32 位元浮點屬性 |
direction | ::mlir::StringAttr | 字串屬性 |
hidden_size | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
layout | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
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 運算
生成一個具有從常態分佈中抽取的隨機值的張量。輸出張量的形狀是從輸入張量的形狀複製而來,常態分佈的參數由 mean
和 scale
指定。
資料類型由 'dtype' 參數指定,如果未提供,則從輸入張量複製。 'dtype' 參數必須是 TensorProto 訊息中 'DataType' 枚舉欄位中指定的資料類型之一,並且作為輸出類型有效。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
dtype | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
mean | ::mlir::FloatAttr | 32 位元浮點屬性 |
scale | ::mlir::FloatAttr | 32 位元浮點屬性 |
seed | ::mlir::FloatAttr | 32 位元浮點屬性 |
運算元 | 描述 |
---|---|
輸入 |
8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或字串類型數值張量或 1 位元無號整數數值張量或具有 32 位元浮點元素值的複數類型張量或具有 64 位元浮點元素值的複數類型張量 |
結果 | 描述 |
---|---|
輸出 |
16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量 |
onnx.RandomNormal
(ONNXRandomNormalOp)ONNX RandomNormal 運算
生成一個具有從常態分佈中抽取的隨機值的張量。張量的形狀由 shape
參數指定,常態分佈的參數由 mean
和 scale
指定。
資料類型由 'dtype' 參數指定。 'dtype' 參數必須是 TensorProto 訊息中 'DataType' 枚舉欄位中指定的資料類型之一。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ResultTypeInferenceOpInterface
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
dtype | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
mean | ::mlir::FloatAttr | 32 位元浮點屬性 |
scale | ::mlir::FloatAttr | 32 位元浮點屬性 |
seed | ::mlir::FloatAttr | 32 位元浮點屬性 |
shape | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
結果 | 描述 |
---|---|
輸出 |
16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量 |
onnx.RandomUniformLike
(ONNXRandomUniformLikeOp)ONNX RandomUniformLike 運算
生成一個具有從均勻分佈中抽取的隨機值的張量。輸出張量的形狀是從輸入張量的形狀複製而來,均勻分佈的參數由 low
和 high
指定。
資料類型由 'dtype' 參數指定,如果未提供,則從輸入張量複製。 'dtype' 參數必須是 TensorProto 訊息中 'DataType' 枚舉欄位中指定的資料類型之一,並且作為輸出類型有效。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
dtype | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
high | ::mlir::FloatAttr | 32 位元浮點屬性 |
low | ::mlir::FloatAttr | 32 位元浮點屬性 |
seed | ::mlir::FloatAttr | 32 位元浮點屬性 |
運算元 | 描述 |
---|---|
輸入 |
8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或字串類型數值張量或 1 位元無號整數數值張量或具有 32 位元浮點元素值的複數類型張量或具有 64 位元浮點元素值的複數類型張量 |
結果 | 描述 |
---|---|
輸出 |
16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量 |
onnx.RandomUniform
(ONNXRandomUniformOp)ONNX RandomUniform 運算
生成一個具有從均勻分佈中抽取的隨機值的張量。張量的形狀由 shape
參數指定,範圍由 low
和 high
指定。
資料類型由 'dtype' 參數指定。 'dtype' 參數必須是 TensorProto 訊息中 'DataType' 枚舉欄位中指定的資料類型之一。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
dtype | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
high | ::mlir::FloatAttr | 32 位元浮點屬性 |
low | ::mlir::FloatAttr | 32 位元浮點屬性 |
seed | ::mlir::FloatAttr | 32 位元浮點屬性 |
shape | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
結果 | 描述 |
---|---|
輸出 |
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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
start |
32 位元浮點數值的張量,或 64 位元浮點數值的張量,或 16 位元無符號整數值的張量,或 32 位元無符號整數值的張量,或 64 位元無符號整數值的張量 |
limit |
32 位元浮點數值的張量,或 64 位元浮點數值的張量,或 16 位元無符號整數值的張量,或 32 位元無符號整數值的張量,或 64 位元無符號整數值的張量 |
delta |
32 位元浮點數值的張量,或 64 位元浮點數值的張量,或 16 位元無符號整數值的張量,或 32 位元無符號整數值的張量,或 64 位元無符號整數值的張量 |
結果 | 描述 |
---|---|
輸出 |
32 位元浮點數值的張量,或 64 位元浮點數值的張量,或 16 位元無符號整數值的張量,或 32 位元無符號整數值的張量,或 64 位元無符號整數值的張量 |
onnx.Reciprocal
(ONNXReciprocalOp)ONNX Reciprocal 運算
Reciprocal 接受一個輸入數據(張量
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
X |
16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型數值張量 |
結果 | 描述 |
---|---|
Y |
16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型數值張量 |
onnx.ReduceL1
(ONNXReduceL1Op)ONNX ReduceL1 運算
計算沿提供的軸的輸入張量元素的 L1 範數。如果 keepdims
等於 1,則結果張量具有與輸入相同的秩。如果 keepdims
等於 0,則結果張量會將縮減的維度修剪掉。秩為零的輸入張量是有效的。對空值集合的縮減會產生 0。
上述行為類似於 numpy,但 numpy 預設 keepdims
為 False
而不是 True
。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
keepdims | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
noop_with_empty_axes | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
資料 |
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 預設 keepdims
為 False
而不是 True
。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
axes | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
keepdims | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
資料 |
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 預設 keepdims
為 False
而不是 True
。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
keepdims | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
noop_with_empty_axes | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
資料 |
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 預設 keepdims
為 False
而不是 True
。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
axes | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
keepdims | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
資料 |
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 預設 keepdims
為 False
而不是 True
。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
keepdims | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
noop_with_empty_axes | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
資料 |
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 預設 keepdims
為 False
而不是 True
。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
axes | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
keepdims | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
資料 |
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 預設 keepdims
為 False
而不是 True
。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
keepdims | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
noop_with_empty_axes | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
資料 |
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 預設 keepdims
為 False
而不是 True
。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
axes | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
keepdims | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
資料 |
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 預設 keepdims
為 False
而不是 True
。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
keepdims | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
noop_with_empty_axes | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
資料 |
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 預設 keepdims
為 False
而不是 True
。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
axes | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
keepdims | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
資料 |
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 預設 keepdims
為 False
而不是 True
。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
keepdims | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
noop_with_empty_axes | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
資料 |
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 預設 keepdims
為 False
而不是 True
。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
keepdims | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
noop_with_empty_axes | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
資料 |
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 預設 keepdims
為 False
而不是 True
。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
axes | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
keepdims | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
資料 |
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 預設 keepdims
為 False
而不是 True
。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
keepdims | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
noop_with_empty_axes | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
資料 |
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 預設 keepdims
為 False
而不是 True
。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
axes | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
keepdims | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
資料 |
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 預設 keepdims
為 False
而不是 True
。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
keepdims | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
noop_with_empty_axes | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
資料 |
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 預設 keepdims
為 False
而不是 True
。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
keepdims | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
noop_with_empty_axes | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
資料 |
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 預設 keepdims
為 False
而不是 True
。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
axes | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
keepdims | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
資料 |
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 預設 keepdims
為 False
而不是 True
。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
keepdims | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
noop_with_empty_axes | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
資料 |
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 預設 keepdims
為 False
而不是 True
。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
keepdims | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
noop_with_empty_axes | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
資料 |
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 預設 keepdims
為 False
而不是 True
。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
axes | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
keepdims | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
資料 |
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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
axes | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
keepdims | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
資料 |
32 位元無號整數值張量、64 位元無號整數值張量、32 位元無符號整數值張量、64 位元無符號整數值張量、16 位元浮點數值張量、32 位元浮點數值張量或 64 位元浮點數值張量 |
結果 | 描述 |
---|---|
縮減 |
32 位元無號整數值張量、64 位元無號整數值張量、32 位元無符號整數值張量、64 位元無符號整數值張量、16 位元浮點數值張量、32 位元浮點數值張量或 64 位元浮點數值張量 |
onnx.Relu
(ONNXReluOp)ONNX Relu 運算
Relu 接收一個輸入資料(張量
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
X |
32 位元浮點數值張量、32 位元無符號整數值張量、8 位元無符號整數值張量、16 位元無符號整數值張量、64 位元無符號整數值張量、16 位元浮點數值張量、64 位元浮點數值張量或 bfloat16 類型數值張量 |
結果 | 描述 |
---|---|
Y |
32 位元浮點數值張量、32 位元無符號整數值張量、8 位元無符號整數值張量、16 位元無符號整數值張量、64 位元無符號整數值張量、16 位元浮點數值張量、64 位元浮點數值張量或 bfloat16 類型數值張量 |
onnx.Reshape
(ONNXReshapeOp)ONNX Reshape 運算
重塑輸入張量,類似於 numpy.reshape。第一個輸入是資料張量,第二個輸入是指定輸出形狀的形狀張量。它輸出重塑的張量。新形狀中最多一個維度可以是 -1。在這種情況下,該值是從張量的大小和剩餘維度推斷出來的。維度也可以是 0,在這種情況下,實際維度值保持不變(即從輸入張量取得)。如果設定了「allowzero」,且新形狀包含 0,則維度將明確設定為零(即不從輸入張量取得)。形狀(第二個輸入)可以是空形狀,這表示轉換為純量。輸入張量的形狀和輸出張量的形狀必須具有相同的元素數。
如果設定了屬性「allowzero」,則指定的形狀同時包含零值和 -1 是無效的,因為與 -1 對應的維度值無法唯一確定。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
allowzero | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
資料 |
8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 bfloat16 類型數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或字串類型數值張量或 1 位元無號整數數值張量或 具有 32 位元浮點元素值的複數類型張量或具有 64 位元浮點元素值的複數類型張量或 f8E4M3FN 類型數值張量或 f8E4M3FNUZ 類型數值張量或 f8E5M2 類型數值張量或 f8E5M2FNUZ 類型數值張量 |
shape |
64 位元無號整數值張量 |
結果 | 描述 |
---|---|
重塑 |
8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 bfloat16 類型數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或字串類型數值張量或 1 位元無號整數數值張量或 具有 32 位元浮點元素值的複數類型張量或具有 64 位元浮點元素值的複數類型張量或 f8E4M3FN 類型數值張量或 f8E4M3FNUZ 類型數值張量或 f8E5M2 類型數值張量或 f8E5M2FNUZ 類型數值張量 |
onnx.Resize
(ONNXResizeOp)ONNX Resize 運算
調整輸入張量的大小。一般而言,它會將輸出張量中的每個值計算為輸入張量中鄰域(也稱為取樣位置)的加權平均值。輸出張量的每個維度值為
output_dimension = floor(input_dimension * (roi_end - roi_start) * scale)
如果未指定輸入「尺寸」。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
抗鋸齒 | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
axes | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
座標轉換模式 | ::mlir::StringAttr | 字串屬性 |
立方係數 a | ::mlir::FloatAttr | 32 位元浮點屬性 |
排除外部 | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
外推值 | ::mlir::FloatAttr | 32 位元浮點屬性 |
保持長寬比策略 | ::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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
mode | ::mlir::StringAttr | 字串屬性 |
運算元 | 描述 |
---|---|
X |
8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或字串類型數值張量或 1 位元無號整數數值張量或具有 32 位元浮點元素值的複數類型張量或具有 64 位元浮點元素值的複數類型張量 |
縮放 |
32 位元浮點數值張量 |
結果 | 描述 |
---|---|
Y |
8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或字串類型數值張量或 1 位元無號整數數值張量或具有 32 位元浮點元素值的複數類型張量或具有 64 位元浮點元素值的複數類型張量 |
onnx.ResizeV11
(ONNXResizeV11Op)ONNX Resize 運算
調整輸入張量的大小。一般而言,它會將輸出張量中的每個值計算為輸入張量中鄰域(也稱為取樣位置)的加權平均值。輸出張量的每個維度值為:如果未指定輸入「尺寸」,則 output_dimension = floor(input_dimension * (roi_end - roi_start) * scale)。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
座標轉換模式 | ::mlir::StringAttr | 字串屬性 |
立方係數 a | ::mlir::FloatAttr | 32 位元浮點屬性 |
排除外部 | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
外推值 | ::mlir::FloatAttr | 32 位元浮點屬性 |
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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
座標轉換模式 | ::mlir::StringAttr | 字串屬性 |
立方係數 a | ::mlir::FloatAttr | 32 位元浮點屬性 |
排除外部 | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
外推值 | ::mlir::FloatAttr | 32 位元浮點屬性 |
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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
抗鋸齒 | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
axes | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
座標轉換模式 | ::mlir::StringAttr | 字串屬性 |
立方係數 a | ::mlir::FloatAttr | 32 位元浮點屬性 |
排除外部 | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
外推值 | ::mlir::FloatAttr | 32 位元浮點屬性 |
保持長寬比策略 | ::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 取代。
特性:AlwaysSpeculatableImplTrait
、HasParent<func::FuncOp>
、ReturnLike
、Terminator
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、RegionBranchTerminatorOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
運算元 |
任何類型的可變引數 |
onnx.ReverseSequence
(ONNXReverseSequenceOp)ONNX ReverseSequence 運算
反轉由 sequence_lens
指定的不同長度的序列批次。
對於在批次軸上迭代的每個切片 i,運算子會反轉時間軸上前 sequence_lens[i] 個元素,並將索引超出 sequence_lens[i] 的元素複製到輸出。因此,輸出切片 i 在前 sequence_lens[i] 個元素上包含反轉的序列,然後將其他元素的原始值複製過來。
範例 1: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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
batch_axis | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
time_axis | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
輸入 |
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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
座標轉換模式 | ::mlir::StringAttr | 字串屬性 |
mode | ::mlir::StringAttr | 字串屬性 |
output_height | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
output_width | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
sampling_ratio | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
spatial_scale | ::mlir::FloatAttr | 32 位元浮點屬性 |
運算元 | 描述 |
---|---|
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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
X |
16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量 |
結果 | 描述 |
---|---|
Y |
16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量 |
onnx.STFT
(ONNXSTFTOp)ONNX STFT 運算
計算訊號的短時傅立葉轉換。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
onesided | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
訊號 |
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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
classlabels_ints | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
classlabels_strings | ::mlir::ArrayAttr | 字串陣列屬性 |
coefficients | ::mlir::ArrayAttr | 32 位元浮點陣列屬性 |
kernel_params | ::mlir::ArrayAttr | 32 位元浮點陣列屬性 |
kernel_type | ::mlir::StringAttr | 字串屬性 |
post_transform | ::mlir::StringAttr | 字串屬性 |
prob_a | ::mlir::ArrayAttr | 32 位元浮點陣列屬性 |
prob_b | ::mlir::ArrayAttr | 32 位元浮點陣列屬性 |
rho | ::mlir::ArrayAttr | 32 位元浮點陣列屬性 |
support_vectors | ::mlir::ArrayAttr | 32 位元浮點陣列屬性 |
vectors_per_class | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
運算元 | 描述 |
---|---|
X |
32 位元浮點數值張量或 64 位元浮點數值張量或 64 位元無號整數值張量或 32 位元無號整數值張量 |
結果 | 描述 |
---|---|
Y |
字串類型數值張量或 64 位元無號整數數值張量 |
Z |
32 位元浮點數值張量 |
onnx.SVMRegressor
(ONNXSVMRegressorOp)ONNX SVMRegressor 運算
支援向量機迴歸預測和單類 SVM 異常偵測。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
coefficients | ::mlir::ArrayAttr | 32 位元浮點陣列屬性 |
kernel_params | ::mlir::ArrayAttr | 32 位元浮點陣列屬性 |
kernel_type | ::mlir::StringAttr | 字串屬性 |
n_supports | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
one_class | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
post_transform | ::mlir::StringAttr | 字串屬性 |
rho | ::mlir::ArrayAttr | 32 位元浮點陣列屬性 |
support_vectors | ::mlir::ArrayAttr | 32 位元浮點陣列屬性 |
運算元 | 描述 |
---|---|
X |
32 位元浮點數值張量或 64 位元浮點數值張量或 64 位元無號整數值張量或 32 位元無號整數值張量 |
結果 | 描述 |
---|---|
Y |
32 位元浮點數值張量 |
onnx.Scaler
(ONNXScalerOp)ONNX Scaler 運算
重新調整輸入資料,例如透過移除平均值並縮放至單位變異數來標準化特徵。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
offset | ::mlir::ArrayAttr | 32 位元浮點陣列屬性 |
scale | ::mlir::ArrayAttr | 32 位元浮點陣列屬性 |
運算元 | 描述 |
---|---|
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
介面: ConditionallySpeculatable
、 HasOnnxSubgraphOpInterface
、 NoMemoryEffect (MemoryEffectOpInterface)
、 ResultTypeInferenceOpInterface
、 ShapeHelperOpInterface
、 ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
num_scan_inputs | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
scan_input_axes | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
scan_input_directions | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
scan_output_axes | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
scan_output_directions | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
運算元 | 描述 |
---|---|
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 接受三個輸入 data
、updates
和 indices
,它們的秩 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
是 +
、*
、max
或 min
,如指定。
此運算符是 GatherElements 的反向運算符。它類似於 Torch 的 Scatter 運算。
(Opset 18 變更):將 max/min 新增到允許的歸約運算集合中。
範例 1
data = [
[0.0, 0.0, 0.0],
[0.0, 0.0, 0.0],
[0.0, 0.0, 0.0],
]
indices = [
[1, 0, 2],
[0, 2, 1],
]
updates = [
[1.0, 1.1, 1.2],
[2.0, 2.1, 2.2],
]
output = [
[2.0, 1.1, 0.0]
[1.0, 0.0, 2.2]
[0.0, 2.1, 1.2]
]
範例 2
data = [[1.0, 2.0, 3.0, 4.0, 5.0]]
indices = [[1, 3]]
updates = [[1.1, 2.1]]
axis = 1
output = [[1.0, 1.1, 3.0, 2.1, 5.0]]
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
軸 | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
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
是 +
、*
、max
或 min
,如指定。
此運算符是 GatherND 的反向運算符。
(Opset 18 變更):將 max/min 新增到允許的歸約運算集合中。
範例 1
data = [1, 2, 3, 4, 5, 6, 7, 8]
indices = [[4], [3], [1], [7]]
updates = [9, 10, 11, 12]
output = [1, 11, 3, 10, 9, 6, 7, 12]
範例 2
data = [[[1, 2, 3, 4], [5, 6, 7, 8], [8, 7, 6, 5], [4, 3, 2, 1]],
[[1, 2, 3, 4], [5, 6, 7, 8], [8, 7, 6, 5], [4, 3, 2, 1]],
[[8, 7, 6, 5], [4, 3, 2, 1], [1, 2, 3, 4], [5, 6, 7, 8]],
[[8, 7, 6, 5], [4, 3, 2, 1], [1, 2, 3, 4], [5, 6, 7, 8]]]
indices = [[0], [2]]
updates = [[[5, 5, 5, 5], [6, 6, 6, 6], [7, 7, 7, 7], [8, 8, 8, 8]],
[[1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3], [4, 4, 4, 4]]]
output = [[[5, 5, 5, 5], [6, 6, 6, 6], [7, 7, 7, 7], [8, 8, 8, 8]],
[[1, 2, 3, 4], [5, 6, 7, 8], [8, 7, 6, 5], [4, 3, 2, 1]],
[[1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3], [4, 4, 4, 4]],
[[8, 7, 6, 5], [4, 3, 2, 1], [1, 2, 3, 4], [5, 6, 7, 8]]]
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
reduction | ::mlir::StringAttr | 字串屬性 |
運算元 | 描述 |
---|---|
資料 |
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 接受三個輸入 data
、updates
和 indices
,它們的秩 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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
軸 | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
資料 |
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 接受一個輸入資料(張量
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
alpha | ::mlir::FloatAttr | 32 位元浮點屬性 |
gamma | ::mlir::FloatAttr | 32 位元浮點屬性 |
運算元 | 描述 |
---|---|
X |
16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量 |
結果 | 描述 |
---|---|
Y |
16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量 |
onnx.SequenceAt
(ONNXSequenceAtOp)ONNX SequenceAt 運算
從 'input_sequence' 中 'position' 位置的張量輸出一個張量副本。'position' 的可接受範圍為 [-n, n - 1]
,其中 n
是 'input_sequence' 中張量的數量。負值表示從後往前數位置。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
input_sequence |
8 位元無號整數數值張量的 SeqType 或 16 位元無號整數數值張量的 SeqType 或 32 位元無號整數數值張量的 SeqType 或 64 位元無號整數數值張量的 SeqType 或 8 位元無號整數數值張量的 SeqType 或 16 位元無號整數數值張量的 SeqType 或 32 位元無號整數數值張量的 SeqType 或 64 位元無號整數數值張量的 SeqType 或 16 位元浮點數值張量的 SeqType 或 32 位元浮點數值張量的 SeqType 或 64 位元浮點數值張量的 SeqType 或 字串類型數值張量的 SeqType 或 1 位元無號整數數值張量的 SeqType 或 具有 32 位元浮點元素值的複數類型張量的 SeqType 或 具有 64 位元浮點元素值的複數類型張量的 SeqType |
position |
32 位元無號整數值張量或 64 位元無號整數值張量 |
結果 | 描述 |
---|---|
tensor |
8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或字串類型數值張量或 1 位元無號整數數值張量或具有 32 位元浮點元素值的複數類型張量或具有 64 位元浮點元素值的複數類型張量 |
onnx.SequenceConstruct
(ONNXSequenceConstructOp)ONNX SequenceConstruct 運算
建構一個包含 'inputs' 張量的張量序列。'inputs' 中的所有張量必須具有相同的資料類型。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
輸入 |
可變長度的 8 位元無符號整數值張量或 16 位元無符號整數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量或 8 位元無符號整數值張量或 16 位元無符號整數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或字串類型值張量或 1 位元無符號整數值張量或具有 32 位元浮點元素值的複數類型張量或具有 64 位元浮點元素值的複數類型張量 |
結果 | 描述 |
---|---|
output_sequence |
8 位元無號整數數值張量的 SeqType 或 16 位元無號整數數值張量的 SeqType 或 32 位元無號整數數值張量的 SeqType 或 64 位元無號整數數值張量的 SeqType 或 8 位元無號整數數值張量的 SeqType 或 16 位元無號整數數值張量的 SeqType 或 32 位元無號整數數值張量的 SeqType 或 64 位元無號整數數值張量的 SeqType 或 16 位元浮點數值張量的 SeqType 或 32 位元浮點數值張量的 SeqType 或 64 位元浮點數值張量的 SeqType 或 字串類型數值張量的 SeqType 或 1 位元無號整數數值張量的 SeqType 或 具有 32 位元浮點元素值的複數類型張量的 SeqType 或 具有 64 位元浮點元素值的複數類型張量的 SeqType |
onnx.SequenceEmpty
(ONNXSequenceEmptyOp)ONNX SequenceEmpty 運算
建構一個具有給定資料類型的空張量序列。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
dtype | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
結果 | 描述 |
---|---|
輸出 |
8 位元無號整數數值張量的 SeqType 或 16 位元無號整數數值張量的 SeqType 或 32 位元無號整數數值張量的 SeqType 或 64 位元無號整數數值張量的 SeqType 或 8 位元無號整數數值張量的 SeqType 或 16 位元無號整數數值張量的 SeqType 或 32 位元無號整數數值張量的 SeqType 或 64 位元無號整數數值張量的 SeqType 或 16 位元浮點數值張量的 SeqType 或 32 位元浮點數值張量的 SeqType 或 64 位元浮點數值張量的 SeqType 或 字串類型數值張量的 SeqType 或 1 位元無號整數數值張量的 SeqType 或 具有 32 位元浮點元素值的複數類型張量的 SeqType 或 具有 64 位元浮點元素值的複數類型張量的 SeqType |
onnx.SequenceErase
(ONNXSequenceEraseOp)ONNX SequenceErase 運算
輸出一個張量序列,該序列會從 'input_sequence' 中移除 'position' 位置的張量。'position' 的可接受範圍為 [-n, n - 1]
,其中 n
是 'input_sequence' 中張量的數量。負值表示從後往前數位置。'position' 是可選的,預設情況下它會移除 'input_sequence' 中的最後一個張量。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
input_sequence |
8 位元無號整數數值張量的 SeqType 或 16 位元無號整數數值張量的 SeqType 或 32 位元無號整數數值張量的 SeqType 或 64 位元無號整數數值張量的 SeqType 或 8 位元無號整數數值張量的 SeqType 或 16 位元無號整數數值張量的 SeqType 或 32 位元無號整數數值張量的 SeqType 或 64 位元無號整數數值張量的 SeqType 或 16 位元浮點數值張量的 SeqType 或 32 位元浮點數值張量的 SeqType 或 64 位元浮點數值張量的 SeqType 或 字串類型數值張量的 SeqType 或 1 位元無號整數數值張量的 SeqType 或 具有 32 位元浮點元素值的複數類型張量的 SeqType 或 具有 64 位元浮點元素值的複數類型張量的 SeqType |
position |
32 位元無正負號整數值張量或 64 位元無正負號整數值張量或無類型 |
結果 | 描述 |
---|---|
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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
input_sequence |
8 位元無號整數數值張量的 SeqType 或 16 位元無號整數數值張量的 SeqType 或 32 位元無號整數數值張量的 SeqType 或 64 位元無號整數數值張量的 SeqType 或 8 位元無號整數數值張量的 SeqType 或 16 位元無號整數數值張量的 SeqType 或 32 位元無號整數數值張量的 SeqType 或 64 位元無號整數數值張量的 SeqType 或 16 位元浮點數值張量的 SeqType 或 32 位元浮點數值張量的 SeqType 或 64 位元浮點數值張量的 SeqType 或 字串類型數值張量的 SeqType 或 1 位元無號整數數值張量的 SeqType 或 具有 32 位元浮點元素值的複數類型張量的 SeqType 或 具有 64 位元浮點元素值的複數類型張量的 SeqType |
tensor |
8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或字串類型數值張量或 1 位元無號整數數值張量或具有 32 位元浮點元素值的複數類型張量或具有 64 位元浮點元素值的複數類型張量 |
position |
32 位元無正負號整數值張量或 64 位元無正負號整數值張量或無類型 |
結果 | 描述 |
---|---|
output_sequence |
8 位元無號整數數值張量的 SeqType 或 16 位元無號整數數值張量的 SeqType 或 32 位元無號整數數值張量的 SeqType 或 64 位元無號整數數值張量的 SeqType 或 8 位元無號整數數值張量的 SeqType 或 16 位元無號整數數值張量的 SeqType 或 32 位元無號整數數值張量的 SeqType 或 64 位元無號整數數值張量的 SeqType 或 16 位元浮點數值張量的 SeqType 或 32 位元浮點數值張量的 SeqType 或 64 位元浮點數值張量的 SeqType 或 字串類型數值張量的 SeqType 或 1 位元無號整數數值張量的 SeqType 或 具有 32 位元浮點元素值的複數類型張量的 SeqType 或 具有 64 位元浮點元素值的複數類型張量的 SeqType |
onnx.SequenceLength
(ONNXSequenceLengthOp)ONNX SequenceLength 運算
產生一個純量(空形狀的張量),其中包含 'input_sequence' 中張量的數量。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
input_sequence |
8 位元無號整數數值張量的 SeqType 或 16 位元無號整數數值張量的 SeqType 或 32 位元無號整數數值張量的 SeqType 或 64 位元無號整數數值張量的 SeqType 或 8 位元無號整數數值張量的 SeqType 或 16 位元無號整數數值張量的 SeqType 或 32 位元無號整數數值張量的 SeqType 或 64 位元無號整數數值張量的 SeqType 或 16 位元浮點數值張量的 SeqType 或 32 位元浮點數值張量的 SeqType 或 64 位元浮點數值張量的 SeqType 或 字串類型數值張量的 SeqType 或 1 位元無號整數數值張量的 SeqType 或 具有 32 位元浮點元素值的複數類型張量的 SeqType 或 具有 64 位元浮點元素值的複數類型張量的 SeqType |
結果 | 描述 |
---|---|
length |
64 位元無號整數值張量 |
onnx.SequenceMap
(ONNXSequenceMapOp)ONNX SequenceMap 運算
將一個子圖應用於輸入序列中的每個樣本。
輸入可以是張量或序列,但第一個輸入必須是序列。第一個輸入序列的長度將決定輸出中的樣本數量。任何其他序列輸入都應具有相同的樣本數量。輸入和輸出的數量應與子圖的數量相符。
對於輸出中的每個第 i 個元素,將從輸入序列中的第 i 個位置提取一個樣本,並將子圖應用於該樣本。輸出將包含每個樣本的子圖輸出,順序與輸入相同。
此運算子假設處理每個樣本是獨立的,可以並行或以任何順序執行。使用者不能期望每個子圖的計算有任何特定的順序。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、HasOnnxSubgraphOpInterface
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
input_sequence |
8 位元無號整數數值張量的 SeqType 或 16 位元無號整數數值張量的 SeqType 或 32 位元無號整數數值張量的 SeqType 或 64 位元無號整數數值張量的 SeqType 或 8 位元無號整數數值張量的 SeqType 或 16 位元無號整數數值張量的 SeqType 或 32 位元無號整數數值張量的 SeqType 或 64 位元無號整數數值張量的 SeqType 或 16 位元浮點數值張量的 SeqType 或 32 位元浮點數值張量的 SeqType 或 64 位元浮點數值張量的 SeqType 或 字串類型數值張量的 SeqType 或 1 位元無號整數數值張量的 SeqType 或 具有 32 位元浮點元素值的複數類型張量的 SeqType 或 具有 64 位元浮點元素值的複數類型張量的 SeqType |
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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
end | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
start | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
資料 |
8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 bfloat16 類型數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或字串類型數值張量或 1 位元無號整數數值張量或 具有 32 位元浮點元素值的複數類型張量或具有 64 位元浮點元素值的複數類型張量或 f8E4M3FN 類型數值張量或 f8E4M3FNUZ 類型數值張量或 f8E5M2 類型數值張量或 f8E5M2FNUZ 類型數值張量 |
結果 | 描述 |
---|---|
shape |
64 位元無號整數值張量 |
onnx.ShapeTransform
(ONNXShapeTransformOp)ONNX 逐元素形狀轉換運算
此運算子將張量轉換為另一個張量,其形狀由給定的仿射映射改變。這是逐元素的轉換,因此輸入中的每個元素都會透過仿射映射複製到輸出中的一個元素。仿射映射必須是雙射的。
例如,以下程式碼使用 onnx.ShapeTransform
將張量從 2D 重塑為 4D。
#reshape = affine_map(d0, d1) -> (d0/32, d0%32, d1/64, d1%64)
%Y = onnx.ShapeTransform(%arg0) {index_map = #reshape} : (tensor<128x128xf32>) -> tensor<4x32x2x64xf32>
onnx.ShapeTransform
最終將透過降低到 krnl
方言,具體化為 affine.for
,例如:
%alloc = memref.alloc() {alignment = 16 : i64} : memref<4x32x2x64xf32>
affine.for %arg1 = 0 to 128 {
affine.for %arg2 = 0 to 128 {
%0 = affine.load %arg0[%arg1, %arg2] : memref< 128x128xf32 >
affine.store %0, %alloc[%arg1 / 32, %arg1 % 32, %arg2 / 64, %arg2 % 64] : memref<4x32x2x64xf32>
}
}
當被正規化時,ShapeTransform 運算會透過組合其仿射映射來組合成新的 ShapeTransform 運算。
目前,此運算僅支援靜態維度。
此運算不是標準的一部分,並且新增用於協助 onnx-mlir。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
index_map | ::mlir::AffineMapAttr | AffineMap 屬性 |
運算元 | 描述 |
---|---|
輸入 |
32 位元浮點數值張量 |
結果 | 描述 |
---|---|
輸出 |
32 位元浮點數值張量 |
onnx.Shrink
(ONNXShrinkOp)ONNX Shrink 運算
Shrink 接受一個輸入資料(張量
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
bias | ::mlir::FloatAttr | 32 位元浮點屬性 |
lambd | ::mlir::FloatAttr | 32 位元浮點屬性 |
運算元 | 描述 |
---|---|
輸入 |
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 接受一個輸入資料(張量
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
X |
16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型數值張量 |
結果 | 描述 |
---|---|
Y |
16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型數值張量 |
onnx.Sign
(ONNXSignOp)ONNX Sign 運算
逐元素計算給定輸入張量的符號。如果輸入 > 0,則輸出 1。如果輸入 < 0,則輸出 -1。如果輸入 == 0,則輸出 0。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
輸入 |
8 位元無符號整數值張量或 16 位元無符號整數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量或 8 位元無號整數值張量或 16 位元無號整數值張量或 32 位元無號整數值張量或 64 位元無號整數值張量或 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量或 bfloat16 型別值張量 |
結果 | 描述 |
---|---|
輸出 |
8 位元無符號整數值張量或 16 位元無符號整數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量或 8 位元無號整數值張量或 16 位元無號整數值張量或 32 位元無號整數值張量或 64 位元無號整數值張量或 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量或 bfloat16 型別值張量 |
onnx.Sin
(ONNXSinOp)ONNX Sin 運算
逐元素計算給定輸入張量的正弦值。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
輸入 |
16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量 |
結果 | 描述 |
---|---|
輸出 |
16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量 |
onnx.Sinh
(ONNXSinhOp)ONNX Sinh 運算
逐元素計算給定輸入張量的雙曲正弦值。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
輸入 |
16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量 |
結果 | 描述 |
---|---|
輸出 |
16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量 |
onnx.Size
(ONNXSizeOp)ONNX Size 運算
接受一個張量作為輸入,並輸出一個 int64 純量,該純量等於輸入張量的元素總數。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
資料 |
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 使用 starts
、ends
、axes
和 steps
輸入來選擇其輸入 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] = 0
、ends[i] = dims[i]
,其中 dims
是 input
的維度,且 steps[i] = 1
。
所有 axes
的負數元素都會加上 r
來使其成為非負數,其中 r =rank(input)
。
starts[i]
和 ends[i]
中所有負數值都會加上 dims[axes[i]]
,其中 dims
是 input
的維度。然後,調整後的 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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果: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 可以選擇性地縮減
ReduceSum(L) / ReduceSum(W)
,其中張量 W 的形狀為 (N, D1, D2, ..., Dk)
且 W[n][d1][d2]...[dk] = weights[labels[i][d1][d2]...[dk]]
。特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
ignore_index | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
reduction | ::mlir::StringAttr | 字串屬性 |
運算元 | 描述 |
---|---|
scores |
16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型數值張量 |
labels |
32 位元無號整數值張量或 64 位元無號整數值張量 |
weights |
16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型數值張量或 none 類型 |
結果 | 描述 |
---|---|
輸出 |
16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型數值張量 |
log_prob |
16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型數值張量或 none 類型 |
onnx.Softmax
(ONNXSoftmaxOp)ONNX Softmax 運算
此運算子計算給定輸入的正規化指數值
Softmax(input, axis) = Exp(input) / ReduceSum(Exp(input), axis=axis, keepdims=1)
"axis" 屬性表示將執行 Softmax 的維度。輸出張量具有相同的形狀,並包含相應輸入的 Softmax 值。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
軸 | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
輸入 |
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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
軸 | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
輸入 |
16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量 |
結果 | 描述 |
---|---|
輸出 |
16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量 |
onnx.Softplus
(ONNXSoftplusOp)ONNX Softplus 運算
Softplus 採用一個輸入數據 (Tensor
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
X |
16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量 |
結果 | 描述 |
---|---|
Y |
16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量 |
onnx.Softsign
(ONNXSoftsignOp)ONNX Softsign 運算
計算給定輸入張量的 softsign (x/(1+ | x | )),逐元素運算。 |
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
輸入 |
16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量 |
結果 | 描述 |
---|---|
輸出 |
16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量 |
onnx.SpaceToDepth
(ONNXSpaceToDepthOp)ONNX SpaceToDepth 運算
SpaceToDepth 將空間數據區塊重新排列為深度。更具體而言,此運算會輸出輸入張量的副本,其中高度和寬度維度的值會移至深度維度。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
blocksize | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
輸入 |
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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
軸 | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
num_outputs | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
輸入 |
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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
軸 | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
keepdims | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
輸入 |
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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
軸 | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
split | ::mlir::ArrayAttr | 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.SplitV13
(ONNXSplitV13Op)ONNX Split 運算
沿著指定的 'axis' 將張量分割成張量列表。可以使用輸入 'split' 指定各部分的長度。否則,張量會分割成大小相等的部分。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
軸 | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
輸入 |
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
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
X |
16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型數值張量 |
結果 | 描述 |
---|---|
Y |
16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型數值張量 |
onnx.Squeeze
(ONNXSqueezeOp)ONNX Squeeze 運算
從張量的形狀中移除單維條目。採用具有要壓縮軸列表的輸入 axes
。如果未提供 axes
,則會從形狀中移除所有單維度。如果選取的軸的形狀條目不等於 1,則會產生錯誤。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
資料 |
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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
axes | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
運算元 | 描述 |
---|---|
資料 |
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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
case_change_action | ::mlir::StringAttr | 字串屬性 |
is_case_sensitive | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
locale | ::mlir::StringAttr | 字串屬性 |
stopwords | ::mlir::ArrayAttr | 字串陣列屬性 |
運算元 | 描述 |
---|---|
X |
字串類型的值張量 |
結果 | 描述 |
---|---|
Y |
字串類型的值張量 |
onnx.Sub
(ONNXSubOp)ONNX Sub 運算
執行逐元素的二元減法 (具有 Numpy 風格的廣播支援)。
此運算子支援多向 (即 Numpy 式) 廣播;如需更多詳細資訊,請查看 文件。
(Opset 14 變更):擴充支援的型別,以包含 uint8、int8、uint16 和 int16。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
A |
8 位元無符號整數值張量或 16 位元無符號整數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量或 8 位元無號整數值張量或 16 位元無號整數值張量或 32 位元無號整數值張量或 64 位元無號整數值張量或 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量或 bfloat16 型別值張量 |
B |
8 位元無符號整數值張量或 16 位元無符號整數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量或 8 位元無號整數值張量或 16 位元無號整數值張量或 32 位元無號整數值張量或 64 位元無號整數值張量或 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量或 bfloat16 型別值張量 |
結果 | 描述 |
---|---|
C |
8 位元無符號整數值張量或 16 位元無符號整數值張量或 32 位元無符號整數值張量或 64 位元無符號整數值張量或 8 位元無號整數值張量或 16 位元無號整數值張量或 32 位元無號整數值張量或 64 位元無號整數值張量或 16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量或 bfloat16 型別值張量 |
onnx.Sum
(ONNXSumOp)ONNX Sum 運算
每個輸入張量的逐元素總和 (具有 Numpy 風格的廣播支援)。所有輸入和輸出都必須具有相同的數據類型。此運算子支援多向 (即 Numpy 風格) 廣播;如需更多詳細資訊,請查看文件。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
data_0 |
16 位元浮點數值張量、32 位元浮點數值張量、64 位元浮點數值張量或 bfloat16 類型值的張量的變數 |
結果 | 描述 |
---|---|
sum |
16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或 bfloat16 類型數值張量 |
onnx.Tan
(ONNXTanOp)ONNX Tan 運算
逐元素計算給定輸入張量的正切值。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
輸入 |
16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量 |
結果 | 描述 |
---|---|
輸出 |
16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量 |
onnx.Tanh
(ONNXTanhOp)ONNX Tanh 運算
逐元素計算給定輸入張量的雙曲正切值。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
輸入 |
bfloat16 類型值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量 |
結果 | 描述 |
---|---|
輸出 |
bfloat16 類型值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量 |
onnx.TfIdfVectorizer
(ONNXTfIdfVectorizerOp)ONNX TfIdfVectorizer 運算
此轉換會從輸入序列中提取 n-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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
max_gram_length | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
max_skip_count | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
min_gram_length | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
mode | ::mlir::StringAttr | 字串屬性 |
ngram_counts | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
ngram_indexes | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
pool_int64s | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
pool_strings | ::mlir::ArrayAttr | 字串陣列屬性 |
weights | ::mlir::ArrayAttr | 32 位元浮點陣列屬性 |
運算元 | 描述 |
---|---|
X |
字串類型值張量,或 32 位元無號整數值張量,或 64 位元無號整數值張量 |
結果 | 描述 |
---|---|
Y |
32 位元浮點數值張量 |
onnx.ThresholdedRelu
(ONNXThresholdedReluOp)ONNX ThresholdedRelu 運算
ThresholdedRelu 接受一個輸入資料 (張量
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
alpha | ::mlir::FloatAttr | 32 位元浮點屬性 |
運算元 | 描述 |
---|---|
X |
16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量 |
結果 | 描述 |
---|---|
Y |
16 位元浮點值張量或 32 位元浮點值張量或 64 位元浮點值張量 |
onnx.Tile
(ONNXTileOp)ONNX Tile 運算
透過平鋪給定的張量來建立張量。這與 Numpy 中的 tile
函數相同,但不進行廣播。例如,A = [[1, 2], [3, 4]],B = [1, 2],tile(A, B) = [[1, 2, 1, 2], [3, 4, 3, 4]]
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
輸入 |
8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 bfloat16 類型數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或字串類型數值張量或 1 位元無號整數數值張量或具有 32 位元浮點元素值的複數類型張量或具有 64 位元浮點元素值的複數類型張量 |
repeats |
64 位元無號整數值張量 |
結果 | 描述 |
---|---|
輸出 |
8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 bfloat16 類型數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或字串類型數值張量或 1 位元無號整數數值張量或具有 32 位元浮點元素值的複數類型張量或具有 64 位元浮點元素值的複數類型張量 |
onnx.TopK
(ONNXTopKOp)ONNX TopK 運算
沿著指定的軸檢索前 K 個最大或最小元素。給定形狀為 [a_0, a_1, …, a_{n-1}] 的輸入張量和整數參數 k,返回兩個輸出
形狀為 [a_0, a_1, …, a_{axis-1}, k, a_{axis+1}, … a_{n-1}] 的索引張量,其中包含前 k 個元素的索引 (來自輸入張量的原始索引)。
給定兩個相等的值,此運算子會使用沿軸的索引作為決勝因素。也就是說,索引較低的元素將會先出現。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
軸 | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
largest | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
sorted | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
X |
8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量 |
K |
64 位元無號整數值張量 |
結果 | 描述 |
---|---|
Values |
8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量 |
Indices |
64 位元無號整數值張量 |
onnx.Transpose
(ONNXTransposeOp)ONNX Transpose 運算
轉置輸入張量,類似於 numpy.transpose。例如,當 perm=(1, 0, 2) 時,給定一個形狀為 (1, 2, 3) 的輸入張量,輸出形狀將會是 (2, 1, 3)。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
perm | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
運算元 | 描述 |
---|---|
資料 |
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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
base_values | ::mlir::ArrayAttr | 32 位元浮點陣列屬性 |
class_ids | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
class_nodeids | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
class_treeids | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
class_weights | ::mlir::ArrayAttr | 32 位元浮點陣列屬性 |
classlabels_int64s | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
classlabels_strings | ::mlir::ArrayAttr | 字串陣列屬性 |
nodes_falsenodeids | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
nodes_featureids | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
nodes_hitrates | ::mlir::ArrayAttr | 32 位元浮點陣列屬性 |
nodes_missing_value_tracks_true | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
nodes_modes | ::mlir::ArrayAttr | 字串陣列屬性 |
nodes_nodeids | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
nodes_treeids | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
nodes_truenodeids | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
nodes_values | ::mlir::ArrayAttr | 32 位元浮點陣列屬性 |
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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
aggregate_function | ::mlir::StringAttr | 字串屬性 |
base_values | ::mlir::ArrayAttr | 32 位元浮點陣列屬性 |
n_targets | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
nodes_falsenodeids | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
nodes_featureids | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
nodes_hitrates | ::mlir::ArrayAttr | 32 位元浮點陣列屬性 |
nodes_missing_value_tracks_true | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
nodes_modes | ::mlir::ArrayAttr | 字串陣列屬性 |
nodes_nodeids | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
nodes_treeids | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
nodes_truenodeids | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
nodes_values | ::mlir::ArrayAttr | 32 位元浮點陣列屬性 |
post_transform | ::mlir::StringAttr | 字串屬性 |
target_ids | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
target_nodeids | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
target_treeids | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
target_weights | ::mlir::ArrayAttr | 32 位元浮點陣列屬性 |
運算元 | 描述 |
---|---|
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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
upper | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
輸入 |
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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
軸 | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
sorted | ::mlir::IntegerAttr | 64 位元帶符號整數屬性 |
運算元 | 描述 |
---|---|
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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果: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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
axes | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
運算元 | 描述 |
---|---|
資料 |
8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或字串類型數值張量或 1 位元無號整數數值張量或具有 32 位元浮點元素值的複數類型張量或具有 64 位元浮點元素值的複數類型張量 |
結果 | 描述 |
---|---|
expanded |
8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或字串類型數值張量或 1 位元無號整數數值張量或具有 32 位元浮點元素值的複數類型張量或具有 64 位元浮點元素值的複數類型張量 |
onnx.Upsample
(ONNXUpsampleOp)ONNX Upsample 運算
放大輸入張量。輸出張量的每個維度值為:output_dimension = floor(input_dimension * scale)。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
mode | ::mlir::StringAttr | 字串屬性 |
運算元 | 描述 |
---|---|
X |
8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或字串類型數值張量或 1 位元無號整數數值張量或具有 32 位元浮點元素值的複數類型張量或具有 64 位元浮點元素值的複數類型張量 |
縮放 |
32 位元浮點數值張量 |
結果 | 描述 |
---|---|
Y |
8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或字串類型數值張量或 1 位元無號整數數值張量或具有 32 位元浮點元素值的複數類型張量或具有 64 位元浮點元素值的複數類型張量 |
onnx.UpsampleV7
(ONNXUpsampleV7Op)ONNX Upsample 運算
放大輸入張量。輸出張量的每個維度值為:output_dimension = floor(input_dimension * scale)。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
mode | ::mlir::StringAttr | 字串屬性 |
縮放 | ::mlir::ArrayAttr | 32 位元浮點陣列屬性 |
運算元 | 描述 |
---|---|
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
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
condition |
1 位元無號整數值張量 |
X |
8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 bfloat16 類型數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或字串類型數值張量或 1 位元無號整數數值張量或具有 32 位元浮點元素值的複數類型張量或具有 64 位元浮點元素值的複數類型張量 |
Y |
8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 bfloat16 類型數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或字串類型數值張量或 1 位元無號整數數值張量或具有 32 位元浮點元素值的複數類型張量或具有 64 位元浮點元素值的複數類型張量 |
結果 | 描述 |
---|---|
輸出 |
8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 8 位元無號整數數值張量或 16 位元無號整數數值張量或 32 位元無號整數數值張量或 64 位元無號整數數值張量或 bfloat16 類型數值張量或 16 位元浮點數值張量或 32 位元浮點數值張量或 64 位元浮點數值張量或字串類型數值張量或 1 位元無號整數數值張量或具有 32 位元浮點元素值的複數類型張量或具有 64 位元浮點元素值的複數類型張量 |
onnx.Xor
(ONNXXorOp)ONNX 互斥或運算
返回對輸入張量 A
和 B
逐元素執行互斥或邏輯運算後產生的張量(支援 Numpy 風格的廣播)。
此運算子支援多向 (即 Numpy 式) 廣播;如需更多詳細資訊,請查看 文件。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
A |
1 位元無號整數值張量 |
B |
1 位元無號整數值張量 |
結果 | 描述 |
---|---|
C |
1 位元無號整數值張量 |
onnx.Yield
(ONNXYieldOp)ONNX yield 運算
語法
operation ::= `onnx.Yield` attr-dict ($operands^ `:` type($operands))?
onnx.Yield
運算表示 ONNX 子圖中的 yield 運算。該運算接受可變數量的運算元,且不產生任何結果。
此運算並非標準的一部分,而是為了協助 onnx-mlir 而加入。它會終止 ONNXLoop/Scan/IfOp 區域。
特性:AlwaysSpeculatableImplTrait
、ReturnLike
、Terminator
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、RegionBranchTerminatorOpInterface
效果:MemoryEffects::Effect{}
運算元 | 描述 |
---|---|
運算元 |
任何類型的可變引數 |
onnx.ZipMap
(ONNXZipMapOp)ONNX ZipMap 運算
從輸入和屬性建立一個映射。
數值由輸入張量提供,而鍵則由屬性指定。必須在 classlabels_strings 或 classlabels_int64s 中提供鍵(但不能兩者都提供)。
張量的列與屬性指定的鍵一一對應。必須有與鍵一樣多的列。
特徵:AlwaysSpeculatableImplTrait
介面:ConditionallySpeculatable
、NoMemoryEffect (MemoryEffectOpInterface)
、ShapeHelperOpInterface
、ShapeInferenceOpInterface
效果:MemoryEffects::Effect{}
屬性 | MLIR 型別 | 描述 |
---|---|---|
classlabels_int64s | ::mlir::ArrayAttr | 64 位元整數陣列屬性 |
classlabels_strings | ::mlir::ArrayAttr | 字串陣列屬性 |
運算元 | 描述 |
---|---|
X |
32 位元浮點數值張量 |
結果 | 描述 |
---|---|
Z |
包含任何字串類型或 32 位元浮點數值的元組的 SeqType,或包含任何 64 位元無符號整數或 32 位元浮點數值的元組的 SeqType |