ONNX - 運算元



ONNX 中的運算元是定義機器學習模型中計算的基本構建塊,將來自各種框架(如 TensorFlow、PyTorch 等)的操作對映到標準化的 ONNX 格式。

在本教程中,我們將探討什麼是 ONNX 運算元、不同型別以及它們如何在相容 ONNX 的模型中發揮作用。

什麼是 ONNX 運算元?

ONNX 運算元是 ONNX 模型中使用的計算基本單元。每個運算元定義一種特定型別的操作,例如數學計算、資料處理或神經網路層。運算元由一個元組標識 -

<name, domain, version>

其中,

  • 名稱:運算元的名稱。
  • :運算元所屬的名稱空間。
  • 版本:運算元的版本(用於跟蹤更新和更改)。

ONNX 中的核心運算元

核心運算元是 ONNX 和 ONNX-ML 附帶的標準運算元集。這些運算元經過高度最佳化,並受任何相容 ONNX 的產品支援。這些運算元旨在涵蓋大多數常見的機器學習任務,並且通常不能被進一步分解成更簡單的操作。

核心運算元的主要特點 -

  • 這些是在 ONNX 框架內定義的標準運算元。
  • ai.onnx 域包含 124 個運算元,而 ai.onnx.ml 域(專注於機器學習任務)包含 19 個運算元。
  • 核心運算元支援各種問題領域,例如影像分類、推薦系統和自然語言處理。

ai.onnx 域運算元

以下是 ai.onnx 運算元的列表 -

序號 運算元
1Abs
2Acos
3Acosh
4Add
5AffineGrid
6And
7ArgMax
8ArgMin
9Asin
10Asinh
11Atan
12Atanh
13AveragePool
14BatchNormalization
15Bernoulli
16BitShift
17BitwiseAnd
18BitwiseNot
19BitwiseOr
20BitwiseXor
21BlackmanWindow
22Cast
23CastLike
24Ceil
25Celu
26CenterCropPad
27Clip
28Col2Im
29Compress
30Concat
31ConcatFromSequence
32Constant
33ConstantOfShape
34Conv
35ConvInteger
36ConvTranspose
37Cos
38Cosh
39CumSum
40DFT
41DeformConv
42DepthToSpace
43DequantizeLinear
44Det
45Div
46Dropout
47DynamicQuantizeLinear
48Einsum
49Elu
50Equal
51Erf
52Exp
53Expand
54EyeLike
55Flatten
56Floor
57GRU
58Gather
59GatherElements
60GatherND
61Gelu
62Gemm
63GlobalAveragePool
64GlobalLpPool
65GlobalMaxPool
66Greater
67GreaterOrEqual
68GridSample
69GroupNormalization
70HammingWindow
71HannWindow
72HardSigmoid
73HardSwish
74Hardmax
75Identity
76If
77ImageDecoder
78InstanceNormalization
79IsInf
80IsNaN
81LRN
82LSTM
83LayerNormalization
84LeakyRelu
85Less
86LessOrEqual
87Log
88LogSoftmax
89Loop
90LpNormalization
91LpPool
92MatMul
93MatMulInteger
94Max
95MaxPool
96MaxRoiPool
97MaxUnpool
98Mean
99MeanVarianceNormalization
100MelWeightMatrix
101Min
102Mish
103Mod
104Mul
105Multinomial
106Neg
107NonMaxSuppression
108NonZero
109Not
110OneHot
111Optional
112Or
113PRelu
114Pad
115Pow
116QLinearAdd
117QLinearAveragePool
118QLinearConcat
119QLinearConv
120QLinearLeakyRelu
121QLinearMul
122QLinearSigmoid
123QLinearSoftmax
124QLinearTranspose

ai.onnx.ml 域運算元

以下是 ai.onnx.ml 域中所有可用運算元的列表。

序號 運算元
1ArrayFeatureExtractor
2Binarizer
3CastMap
4CategoryMapper
5DictVectorizer
6FeatureVectorizer
7Imputer
8LabelEncoder
9LinearClassifier
10LinearRegressor
11Normalizer
12OneHotEncoder
13SVMClassifier
14SVMRegressor
15Scaler
16TreeEnsemble
17TreeEnsembleClassifier
18TreeEnsembleRegressor
19ZipMap

ONNX 中的自定義運算元

除了核心運算元之外,ONNX 還允許開發者為更專業或非標準的任務定義自定義運算元。

  • 如果 ONNX 運算元集中不存在特定操作,或者如果開發者建立了新的技術或自定義啟用函式,他們可以定義自定義運算元。
  • 自定義運算元由自定義域名稱標識,將其與核心運算元區分開來。
廣告

© . All rights reserved.