1 /**
2 * Copyright 2021 Huawei Technologies Co., Ltd
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17 #include <memory>
18 #include <utility>
19 #include "src/ops/ops_utils.h"
20
21 #ifdef PRIMITIVE_WRITEABLE
22 #include "mindspore/core/ir/anf.h"
23
24 namespace mindspore {
25 namespace lite {
GetPrimitiveT(const AnfNodePtr & node)26 std::unique_ptr<schema::PrimitiveT> GetPrimitiveT(const AnfNodePtr &node) {
27 auto prim = GetValueNode<std::shared_ptr<Primitive>>(node);
28 if (prim == nullptr) {
29 MS_LOG(DEBUG) << "primitive is nullptr";
30 return nullptr;
31 }
32
33 if (prim->name().empty()) {
34 MS_LOG(ERROR) << "the name of primitive is null";
35 return nullptr;
36 }
37
38 MS_LOG(DEBUG) << "export prim: " << prim->name();
39 auto creator = MSOpsRegistry::GetInstance()->GetPrimitiveCreator(prim->name());
40 if (creator != nullptr) {
41 return creator(node);
42 } else {
43 MS_LOG(WARNING) << "can not find MSOpsRegistry for op: " << prim->name();
44 return nullptr;
45 }
46 }
47
AbsPrimitiveCreator(const AnfNodePtr & node)48 std::unique_ptr<schema::PrimitiveT> AbsPrimitiveCreator(const AnfNodePtr &node) {
49 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::Abs>>(node);
50 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
51 }
AbsGradPrimitiveCreator(const AnfNodePtr & node)52 std::unique_ptr<schema::PrimitiveT> AbsGradPrimitiveCreator(const AnfNodePtr &node) {
53 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::AbsGrad>>(node);
54 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
55 }
ActivationPrimitiveCreator(const AnfNodePtr & node)56 std::unique_ptr<schema::PrimitiveT> ActivationPrimitiveCreator(const AnfNodePtr &node) {
57 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::Activation>>(node);
58 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
59 }
ActivationGradPrimitiveCreator(const AnfNodePtr & node)60 std::unique_ptr<schema::PrimitiveT> ActivationGradPrimitiveCreator(const AnfNodePtr &node) {
61 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::ActivationGrad>>(node);
62 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
63 }
AdamPrimitiveCreator(const AnfNodePtr & node)64 std::unique_ptr<schema::PrimitiveT> AdamPrimitiveCreator(const AnfNodePtr &node) {
65 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::Adam>>(node);
66 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
67 }
AdderFusionPrimitiveCreator(const AnfNodePtr & node)68 std::unique_ptr<schema::PrimitiveT> AdderFusionPrimitiveCreator(const AnfNodePtr &node) {
69 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::AdderFusion>>(node);
70 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
71 }
AddFusionPrimitiveCreator(const AnfNodePtr & node)72 std::unique_ptr<schema::PrimitiveT> AddFusionPrimitiveCreator(const AnfNodePtr &node) {
73 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::AddFusion>>(node);
74 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
75 }
AddGradPrimitiveCreator(const AnfNodePtr & node)76 std::unique_ptr<schema::PrimitiveT> AddGradPrimitiveCreator(const AnfNodePtr &node) {
77 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::AddGrad>>(node);
78 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
79 }
AddNPrimitiveCreator(const AnfNodePtr & node)80 std::unique_ptr<schema::PrimitiveT> AddNPrimitiveCreator(const AnfNodePtr &node) {
81 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::AddN>>(node);
82 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
83 }
AllPrimitiveCreator(const AnfNodePtr & node)84 std::unique_ptr<schema::PrimitiveT> AllPrimitiveCreator(const AnfNodePtr &node) {
85 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::All>>(node);
86 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
87 }
ApplyMomentumPrimitiveCreator(const AnfNodePtr & node)88 std::unique_ptr<schema::PrimitiveT> ApplyMomentumPrimitiveCreator(const AnfNodePtr &node) {
89 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::ApplyMomentum>>(node);
90 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
91 }
ArgMaxFusionPrimitiveCreator(const AnfNodePtr & node)92 std::unique_ptr<schema::PrimitiveT> ArgMaxFusionPrimitiveCreator(const AnfNodePtr &node) {
93 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::ArgMaxFusion>>(node);
94 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
95 }
ArgMinFusionPrimitiveCreator(const AnfNodePtr & node)96 std::unique_ptr<schema::PrimitiveT> ArgMinFusionPrimitiveCreator(const AnfNodePtr &node) {
97 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::ArgMinFusion>>(node);
98 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
99 }
AssertPrimitiveCreator(const AnfNodePtr & node)100 std::unique_ptr<schema::PrimitiveT> AssertPrimitiveCreator(const AnfNodePtr &node) {
101 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::Assert>>(node);
102 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
103 }
AssignPrimitiveCreator(const AnfNodePtr & node)104 std::unique_ptr<schema::PrimitiveT> AssignPrimitiveCreator(const AnfNodePtr &node) {
105 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::Assign>>(node);
106 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
107 }
AssignAddPrimitiveCreator(const AnfNodePtr & node)108 std::unique_ptr<schema::PrimitiveT> AssignAddPrimitiveCreator(const AnfNodePtr &node) {
109 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::AssignAdd>>(node);
110 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
111 }
AudioSpectrogramPrimitiveCreator(const AnfNodePtr & node)112 std::unique_ptr<schema::PrimitiveT> AudioSpectrogramPrimitiveCreator(const AnfNodePtr &node) {
113 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::AudioSpectrogram>>(node);
114 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
115 }
AvgPoolFusionPrimitiveCreator(const AnfNodePtr & node)116 std::unique_ptr<schema::PrimitiveT> AvgPoolFusionPrimitiveCreator(const AnfNodePtr &node) {
117 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::AvgPoolFusion>>(node);
118 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
119 }
AvgPoolGradPrimitiveCreator(const AnfNodePtr & node)120 std::unique_ptr<schema::PrimitiveT> AvgPoolGradPrimitiveCreator(const AnfNodePtr &node) {
121 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::AvgPoolGrad>>(node);
122 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
123 }
BatchNormPrimitiveCreator(const AnfNodePtr & node)124 std::unique_ptr<schema::PrimitiveT> BatchNormPrimitiveCreator(const AnfNodePtr &node) {
125 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::BatchNorm>>(node);
126 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
127 }
BatchToSpacePrimitiveCreator(const AnfNodePtr & node)128 std::unique_ptr<schema::PrimitiveT> BatchToSpacePrimitiveCreator(const AnfNodePtr &node) {
129 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::BatchToSpace>>(node);
130 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
131 }
BatchToSpaceNDPrimitiveCreator(const AnfNodePtr & node)132 std::unique_ptr<schema::PrimitiveT> BatchToSpaceNDPrimitiveCreator(const AnfNodePtr &node) {
133 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::BatchToSpaceND>>(node);
134 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
135 }
BiasAddPrimitiveCreator(const AnfNodePtr & node)136 std::unique_ptr<schema::PrimitiveT> BiasAddPrimitiveCreator(const AnfNodePtr &node) {
137 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::BiasAdd>>(node);
138 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
139 }
BiasAddGradPrimitiveCreator(const AnfNodePtr & node)140 std::unique_ptr<schema::PrimitiveT> BiasAddGradPrimitiveCreator(const AnfNodePtr &node) {
141 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::BiasAddGrad>>(node);
142 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
143 }
BNGradPrimitiveCreator(const AnfNodePtr & node)144 std::unique_ptr<schema::PrimitiveT> BNGradPrimitiveCreator(const AnfNodePtr &node) {
145 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::BatchNormGrad>>(node);
146 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
147 }
BroadcastToPrimitiveCreator(const AnfNodePtr & node)148 std::unique_ptr<schema::PrimitiveT> BroadcastToPrimitiveCreator(const AnfNodePtr &node) {
149 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::BroadcastTo>>(node);
150 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
151 }
CastPrimitiveCreator(const AnfNodePtr & node)152 std::unique_ptr<schema::PrimitiveT> CastPrimitiveCreator(const AnfNodePtr &node) {
153 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::Cast>>(node);
154 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
155 }
CeilPrimitiveCreator(const AnfNodePtr & node)156 std::unique_ptr<schema::PrimitiveT> CeilPrimitiveCreator(const AnfNodePtr &node) {
157 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::Ceil>>(node);
158 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
159 }
ClipPrimitiveCreator(const AnfNodePtr & node)160 std::unique_ptr<schema::PrimitiveT> ClipPrimitiveCreator(const AnfNodePtr &node) {
161 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::Clip>>(node);
162 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
163 }
ConcatPrimitiveCreator(const AnfNodePtr & node)164 std::unique_ptr<schema::PrimitiveT> ConcatPrimitiveCreator(const AnfNodePtr &node) {
165 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::Concat>>(node);
166 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
167 }
ConstantOfShapePrimitiveCreator(const AnfNodePtr & node)168 std::unique_ptr<schema::PrimitiveT> ConstantOfShapePrimitiveCreator(const AnfNodePtr &node) {
169 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::ConstantOfShape>>(node);
170 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
171 }
Conv2DBackpropFilterFusionPrimitiveCreator(const AnfNodePtr & node)172 std::unique_ptr<schema::PrimitiveT> Conv2DBackpropFilterFusionPrimitiveCreator(const AnfNodePtr &node) {
173 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::Conv2DBackpropFilterFusion>>(node);
174 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
175 }
Conv2DBackpropInputFusionPrimitiveCreator(const AnfNodePtr & node)176 std::unique_ptr<schema::PrimitiveT> Conv2DBackpropInputFusionPrimitiveCreator(const AnfNodePtr &node) {
177 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::Conv2DBackpropInputFusion>>(node);
178 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
179 }
Conv2DFusionPrimitiveCreator(const AnfNodePtr & node)180 std::unique_ptr<schema::PrimitiveT> Conv2DFusionPrimitiveCreator(const AnfNodePtr &node) {
181 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::Conv2DFusion>>(node);
182 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
183 }
Conv2dTransposeFusionPrimitiveCreator(const AnfNodePtr & node)184 std::unique_ptr<schema::PrimitiveT> Conv2dTransposeFusionPrimitiveCreator(const AnfNodePtr &node) {
185 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::Conv2dTransposeFusion>>(node);
186 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
187 }
CosPrimitiveCreator(const AnfNodePtr & node)188 std::unique_ptr<schema::PrimitiveT> CosPrimitiveCreator(const AnfNodePtr &node) {
189 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::Cos>>(node);
190 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
191 }
CropPrimitiveCreator(const AnfNodePtr & node)192 std::unique_ptr<schema::PrimitiveT> CropPrimitiveCreator(const AnfNodePtr &node) {
193 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::Crop>>(node);
194 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
195 }
CropAndResizePrimitiveCreator(const AnfNodePtr & node)196 std::unique_ptr<schema::PrimitiveT> CropAndResizePrimitiveCreator(const AnfNodePtr &node) {
197 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::CropAndResize>>(node);
198 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
199 }
CustomExtractFeaturesPrimitiveCreator(const AnfNodePtr & node)200 std::unique_ptr<schema::PrimitiveT> CustomExtractFeaturesPrimitiveCreator(const AnfNodePtr &node) {
201 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::CustomExtractFeatures>>(node);
202 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
203 }
CustomNormalizePrimitiveCreator(const AnfNodePtr & node)204 std::unique_ptr<schema::PrimitiveT> CustomNormalizePrimitiveCreator(const AnfNodePtr &node) {
205 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::CustomNormalize>>(node);
206 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
207 }
CustomPredictPrimitiveCreator(const AnfNodePtr & node)208 std::unique_ptr<schema::PrimitiveT> CustomPredictPrimitiveCreator(const AnfNodePtr &node) {
209 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::CustomPredict>>(node);
210 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
211 }
DependPrimitiveCreator(const AnfNodePtr & node)212 std::unique_ptr<schema::PrimitiveT> DependPrimitiveCreator(const AnfNodePtr &node) {
213 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::Depend>>(node);
214 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
215 }
DepthToSpacePrimitiveCreator(const AnfNodePtr & node)216 std::unique_ptr<schema::PrimitiveT> DepthToSpacePrimitiveCreator(const AnfNodePtr &node) {
217 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::DepthToSpace>>(node);
218 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
219 }
DetectionPostProcessPrimitiveCreator(const AnfNodePtr & node)220 std::unique_ptr<schema::PrimitiveT> DetectionPostProcessPrimitiveCreator(const AnfNodePtr &node) {
221 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::DetectionPostProcess>>(node);
222 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
223 }
DivFusionPrimitiveCreator(const AnfNodePtr & node)224 std::unique_ptr<schema::PrimitiveT> DivFusionPrimitiveCreator(const AnfNodePtr &node) {
225 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::DivFusion>>(node);
226 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
227 }
DivGradPrimitiveCreator(const AnfNodePtr & node)228 std::unique_ptr<schema::PrimitiveT> DivGradPrimitiveCreator(const AnfNodePtr &node) {
229 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::DivGrad>>(node);
230 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
231 }
DropoutPrimitiveCreator(const AnfNodePtr & node)232 std::unique_ptr<schema::PrimitiveT> DropoutPrimitiveCreator(const AnfNodePtr &node) {
233 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::Dropout>>(node);
234 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
235 }
DropoutGradPrimitiveCreator(const AnfNodePtr & node)236 std::unique_ptr<schema::PrimitiveT> DropoutGradPrimitiveCreator(const AnfNodePtr &node) {
237 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::DropoutGrad>>(node);
238 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
239 }
GRUPrimitiveCreator(const AnfNodePtr & node)240 std::unique_ptr<schema::PrimitiveT> GRUPrimitiveCreator(const AnfNodePtr &node) {
241 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::GRU>>(node);
242 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
243 }
EltwisePrimitiveCreator(const AnfNodePtr & node)244 std::unique_ptr<schema::PrimitiveT> EltwisePrimitiveCreator(const AnfNodePtr &node) {
245 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::Eltwise>>(node);
246 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
247 }
EluPrimitiveCreator(const AnfNodePtr & node)248 std::unique_ptr<schema::PrimitiveT> EluPrimitiveCreator(const AnfNodePtr &node) {
249 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::Elu>>(node);
250 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
251 }
EmbeddingLookupFusionPrimitiveCreator(const AnfNodePtr & node)252 std::unique_ptr<schema::PrimitiveT> EmbeddingLookupFusionPrimitiveCreator(const AnfNodePtr &node) {
253 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::EmbeddingLookupFusion>>(node);
254 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
255 }
EqualPrimitiveCreator(const AnfNodePtr & node)256 std::unique_ptr<schema::PrimitiveT> EqualPrimitiveCreator(const AnfNodePtr &node) {
257 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::Equal>>(node);
258 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
259 }
ExpandDimsPrimitiveCreator(const AnfNodePtr & node)260 std::unique_ptr<schema::PrimitiveT> ExpandDimsPrimitiveCreator(const AnfNodePtr &node) {
261 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::ExpandDims>>(node);
262 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
263 }
ExpFusionPrimitiveCreator(const AnfNodePtr & node)264 std::unique_ptr<schema::PrimitiveT> ExpFusionPrimitiveCreator(const AnfNodePtr &node) {
265 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::ExpFusion>>(node);
266 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
267 }
FftImagPrimitiveCreator(const AnfNodePtr & node)268 std::unique_ptr<schema::PrimitiveT> FftImagPrimitiveCreator(const AnfNodePtr &node) {
269 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::FftImag>>(node);
270 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
271 }
FftRealPrimitiveCreator(const AnfNodePtr & node)272 std::unique_ptr<schema::PrimitiveT> FftRealPrimitiveCreator(const AnfNodePtr &node) {
273 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::FftReal>>(node);
274 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
275 }
FillPrimitiveCreator(const AnfNodePtr & node)276 std::unique_ptr<schema::PrimitiveT> FillPrimitiveCreator(const AnfNodePtr &node) {
277 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::Fill>>(node);
278 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
279 }
FlattenPrimitiveCreator(const AnfNodePtr & node)280 std::unique_ptr<schema::PrimitiveT> FlattenPrimitiveCreator(const AnfNodePtr &node) {
281 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::Flatten>>(node);
282 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
283 }
FlattenGradPrimitiveCreator(const AnfNodePtr & node)284 std::unique_ptr<schema::PrimitiveT> FlattenGradPrimitiveCreator(const AnfNodePtr &node) {
285 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::FlattenGrad>>(node);
286 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
287 }
FloorPrimitiveCreator(const AnfNodePtr & node)288 std::unique_ptr<schema::PrimitiveT> FloorPrimitiveCreator(const AnfNodePtr &node) {
289 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::Floor>>(node);
290 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
291 }
FloorDivPrimitiveCreator(const AnfNodePtr & node)292 std::unique_ptr<schema::PrimitiveT> FloorDivPrimitiveCreator(const AnfNodePtr &node) {
293 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::FloorDiv>>(node);
294 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
295 }
FloorModPrimitiveCreator(const AnfNodePtr & node)296 std::unique_ptr<schema::PrimitiveT> FloorModPrimitiveCreator(const AnfNodePtr &node) {
297 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::FloorMod>>(node);
298 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
299 }
FullConnectionPrimitiveCreator(const AnfNodePtr & node)300 std::unique_ptr<schema::PrimitiveT> FullConnectionPrimitiveCreator(const AnfNodePtr &node) {
301 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::FullConnection>>(node);
302 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
303 }
FusedBatchNormPrimitiveCreator(const AnfNodePtr & node)304 std::unique_ptr<schema::PrimitiveT> FusedBatchNormPrimitiveCreator(const AnfNodePtr &node) {
305 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::FusedBatchNorm>>(node);
306 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
307 }
GatherPrimitiveCreator(const AnfNodePtr & node)308 std::unique_ptr<schema::PrimitiveT> GatherPrimitiveCreator(const AnfNodePtr &node) {
309 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::Gather>>(node);
310 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
311 }
GatherNdPrimitiveCreator(const AnfNodePtr & node)312 std::unique_ptr<schema::PrimitiveT> GatherNdPrimitiveCreator(const AnfNodePtr &node) {
313 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::GatherNd>>(node);
314 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
315 }
GreaterPrimitiveCreator(const AnfNodePtr & node)316 std::unique_ptr<schema::PrimitiveT> GreaterPrimitiveCreator(const AnfNodePtr &node) {
317 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::Greater>>(node);
318 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
319 }
GreaterEqualPrimitiveCreator(const AnfNodePtr & node)320 std::unique_ptr<schema::PrimitiveT> GreaterEqualPrimitiveCreator(const AnfNodePtr &node) {
321 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::GreaterEqual>>(node);
322 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
323 }
HashtableLookupPrimitiveCreator(const AnfNodePtr & node)324 std::unique_ptr<schema::PrimitiveT> HashtableLookupPrimitiveCreator(const AnfNodePtr &node) {
325 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::HashtableLookup>>(node);
326 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
327 }
InstanceNormPrimitiveCreator(const AnfNodePtr & node)328 std::unique_ptr<schema::PrimitiveT> InstanceNormPrimitiveCreator(const AnfNodePtr &node) {
329 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::InstanceNorm>>(node);
330 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
331 }
InvertPermutationPrimitiveCreator(const AnfNodePtr & node)332 std::unique_ptr<schema::PrimitiveT> InvertPermutationPrimitiveCreator(const AnfNodePtr &node) {
333 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::InvertPermutation>>(node);
334 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
335 }
LayerNormFusionPrimitiveCreator(const AnfNodePtr & node)336 std::unique_ptr<schema::PrimitiveT> LayerNormFusionPrimitiveCreator(const AnfNodePtr &node) {
337 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::LayerNormFusion>>(node);
338 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
339 }
LayerNormGradPrimitiveCreator(const AnfNodePtr & node)340 std::unique_ptr<schema::PrimitiveT> LayerNormGradPrimitiveCreator(const AnfNodePtr &node) {
341 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::LayerNormGrad>>(node);
342 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
343 }
LeakyReluPrimitiveCreator(const AnfNodePtr & node)344 std::unique_ptr<schema::PrimitiveT> LeakyReluPrimitiveCreator(const AnfNodePtr &node) {
345 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::LeakyRelu>>(node);
346 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
347 }
LessPrimitiveCreator(const AnfNodePtr & node)348 std::unique_ptr<schema::PrimitiveT> LessPrimitiveCreator(const AnfNodePtr &node) {
349 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::Less>>(node);
350 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
351 }
LessEqualPrimitiveCreator(const AnfNodePtr & node)352 std::unique_ptr<schema::PrimitiveT> LessEqualPrimitiveCreator(const AnfNodePtr &node) {
353 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::LessEqual>>(node);
354 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
355 }
LogPrimitiveCreator(const AnfNodePtr & node)356 std::unique_ptr<schema::PrimitiveT> LogPrimitiveCreator(const AnfNodePtr &node) {
357 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::Log>>(node);
358 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
359 }
LogGradPrimitiveCreator(const AnfNodePtr & node)360 std::unique_ptr<schema::PrimitiveT> LogGradPrimitiveCreator(const AnfNodePtr &node) {
361 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::LogGrad>>(node);
362 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
363 }
LogicalAndPrimitiveCreator(const AnfNodePtr & node)364 std::unique_ptr<schema::PrimitiveT> LogicalAndPrimitiveCreator(const AnfNodePtr &node) {
365 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::LogicalAnd>>(node);
366 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
367 }
LogicalNotPrimitiveCreator(const AnfNodePtr & node)368 std::unique_ptr<schema::PrimitiveT> LogicalNotPrimitiveCreator(const AnfNodePtr &node) {
369 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::LogicalNot>>(node);
370 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
371 }
LogicalOrPrimitiveCreator(const AnfNodePtr & node)372 std::unique_ptr<schema::PrimitiveT> LogicalOrPrimitiveCreator(const AnfNodePtr &node) {
373 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::LogicalOr>>(node);
374 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
375 }
LrnPrimitiveCreator(const AnfNodePtr & node)376 std::unique_ptr<schema::PrimitiveT> LrnPrimitiveCreator(const AnfNodePtr &node) {
377 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::LRN>>(node);
378 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
379 }
LpNormalizationPrimitiveCreator(const AnfNodePtr & node)380 std::unique_ptr<schema::PrimitiveT> LpNormalizationPrimitiveCreator(const AnfNodePtr &node) {
381 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::LpNormalization>>(node);
382 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
383 }
LshProjectionPrimitiveCreator(const AnfNodePtr & node)384 std::unique_ptr<schema::PrimitiveT> LshProjectionPrimitiveCreator(const AnfNodePtr &node) {
385 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::LshProjection>>(node);
386 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
387 }
LSTMPrimitiveCreator(const AnfNodePtr & node)388 std::unique_ptr<schema::PrimitiveT> LSTMPrimitiveCreator(const AnfNodePtr &node) {
389 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::LSTM>>(node);
390 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
391 }
LSTMGradPrimitiveCreator(const AnfNodePtr & node)392 std::unique_ptr<schema::PrimitiveT> LSTMGradPrimitiveCreator(const AnfNodePtr &node) {
393 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::LSTMGrad>>(node);
394 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
395 }
L2NormalizeFusionPrimitiveCreator(const AnfNodePtr & node)396 std::unique_ptr<schema::PrimitiveT> L2NormalizeFusionPrimitiveCreator(const AnfNodePtr &node) {
397 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::L2NormalizeFusion>>(node);
398 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
399 }
MatMulFusionPrimitiveCreator(const AnfNodePtr & node)400 std::unique_ptr<schema::PrimitiveT> MatMulFusionPrimitiveCreator(const AnfNodePtr &node) {
401 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::MatMulFusion>>(node);
402 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
403 }
MaximumPrimitiveCreator(const AnfNodePtr & node)404 std::unique_ptr<schema::PrimitiveT> MaximumPrimitiveCreator(const AnfNodePtr &node) {
405 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::Maximum>>(node);
406 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
407 }
MaximumGradPrimitiveCreator(const AnfNodePtr & node)408 std::unique_ptr<schema::PrimitiveT> MaximumGradPrimitiveCreator(const AnfNodePtr &node) {
409 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::MaximumGrad>>(node);
410 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
411 }
MaxPoolFusionPrimitiveCreator(const AnfNodePtr & node)412 std::unique_ptr<schema::PrimitiveT> MaxPoolFusionPrimitiveCreator(const AnfNodePtr &node) {
413 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::MaxPoolFusion>>(node);
414 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
415 }
MaxPoolGradPrimitiveCreator(const AnfNodePtr & node)416 std::unique_ptr<schema::PrimitiveT> MaxPoolGradPrimitiveCreator(const AnfNodePtr &node) {
417 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::MaxPoolGrad>>(node);
418 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
419 }
MergePrimitiveCreator(const AnfNodePtr & node)420 std::unique_ptr<schema::PrimitiveT> MergePrimitiveCreator(const AnfNodePtr &node) {
421 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::Merge>>(node);
422 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
423 }
MfccPrimitiveCreator(const AnfNodePtr & node)424 std::unique_ptr<schema::PrimitiveT> MfccPrimitiveCreator(const AnfNodePtr &node) {
425 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::Mfcc>>(node);
426 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
427 }
MinimumPrimitiveCreator(const AnfNodePtr & node)428 std::unique_ptr<schema::PrimitiveT> MinimumPrimitiveCreator(const AnfNodePtr &node) {
429 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::Minimum>>(node);
430 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
431 }
MinimumGradPrimitiveCreator(const AnfNodePtr & node)432 std::unique_ptr<schema::PrimitiveT> MinimumGradPrimitiveCreator(const AnfNodePtr &node) {
433 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::MinimumGrad>>(node);
434 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
435 }
ModPrimitiveCreator(const AnfNodePtr & node)436 std::unique_ptr<schema::PrimitiveT> ModPrimitiveCreator(const AnfNodePtr &node) {
437 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::Mod>>(node);
438 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
439 }
MulFusionPrimitiveCreator(const AnfNodePtr & node)440 std::unique_ptr<schema::PrimitiveT> MulFusionPrimitiveCreator(const AnfNodePtr &node) {
441 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::MulFusion>>(node);
442 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
443 }
MulGradPrimitiveCreator(const AnfNodePtr & node)444 std::unique_ptr<schema::PrimitiveT> MulGradPrimitiveCreator(const AnfNodePtr &node) {
445 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::MulGrad>>(node);
446 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
447 }
NegPrimitiveCreator(const AnfNodePtr & node)448 std::unique_ptr<schema::PrimitiveT> NegPrimitiveCreator(const AnfNodePtr &node) {
449 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::Neg>>(node);
450 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
451 }
NegGradPrimitiveCreator(const AnfNodePtr & node)452 std::unique_ptr<schema::PrimitiveT> NegGradPrimitiveCreator(const AnfNodePtr &node) {
453 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::NegGrad>>(node);
454 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
455 }
NotEqualPrimitiveCreator(const AnfNodePtr & node)456 std::unique_ptr<schema::PrimitiveT> NotEqualPrimitiveCreator(const AnfNodePtr &node) {
457 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::NotEqual>>(node);
458 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
459 }
NonMaxSuppressionPrimitiveCreator(const AnfNodePtr & node)460 std::unique_ptr<schema::PrimitiveT> NonMaxSuppressionPrimitiveCreator(const AnfNodePtr &node) {
461 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::NonMaxSuppression>>(node);
462 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
463 }
OneHotPrimitiveCreator(const AnfNodePtr & node)464 std::unique_ptr<schema::PrimitiveT> OneHotPrimitiveCreator(const AnfNodePtr &node) {
465 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::OneHot>>(node);
466 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
467 }
OnesLikePrimitiveCreator(const AnfNodePtr & node)468 std::unique_ptr<schema::PrimitiveT> OnesLikePrimitiveCreator(const AnfNodePtr &node) {
469 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::OnesLike>>(node);
470 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
471 }
PadFusionPrimitiveCreator(const AnfNodePtr & node)472 std::unique_ptr<schema::PrimitiveT> PadFusionPrimitiveCreator(const AnfNodePtr &node) {
473 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::PadFusion>>(node);
474 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
475 }
PartialFusionPrimitiveCreator(const AnfNodePtr & node)476 std::unique_ptr<schema::PrimitiveT> PartialFusionPrimitiveCreator(const AnfNodePtr &node) {
477 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::PartialFusion>>(node);
478 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
479 }
PowerGradPrimitiveCreator(const AnfNodePtr & node)480 std::unique_ptr<schema::PrimitiveT> PowerGradPrimitiveCreator(const AnfNodePtr &node) {
481 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::PowerGrad>>(node);
482 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
483 }
PowFusionPrimitiveCreator(const AnfNodePtr & node)484 std::unique_ptr<schema::PrimitiveT> PowFusionPrimitiveCreator(const AnfNodePtr &node) {
485 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::PowFusion>>(node);
486 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
487 }
PReLUFusionPrimitiveCreator(const AnfNodePtr & node)488 std::unique_ptr<schema::PrimitiveT> PReLUFusionPrimitiveCreator(const AnfNodePtr &node) {
489 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::PReLUFusion>>(node);
490 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
491 }
QuantDTypeCastPrimitiveCreator(const AnfNodePtr & node)492 std::unique_ptr<schema::PrimitiveT> QuantDTypeCastPrimitiveCreator(const AnfNodePtr &node) {
493 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::QuantDTypeCast>>(node);
494 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
495 }
RaggedRangePrimitiveCreator(const AnfNodePtr & node)496 std::unique_ptr<schema::PrimitiveT> RaggedRangePrimitiveCreator(const AnfNodePtr &node) {
497 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::RaggedRange>>(node);
498 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
499 }
RangePrimitiveCreator(const AnfNodePtr & node)500 std::unique_ptr<schema::PrimitiveT> RangePrimitiveCreator(const AnfNodePtr &node) {
501 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::Range>>(node);
502 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
503 }
RandomStandardNormalPrimitiveCreator(const AnfNodePtr & node)504 std::unique_ptr<schema::PrimitiveT> RandomStandardNormalPrimitiveCreator(const AnfNodePtr &node) {
505 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::RandomStandardNormal>>(node);
506 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
507 }
RankPrimitiveCreator(const AnfNodePtr & node)508 std::unique_ptr<schema::PrimitiveT> RankPrimitiveCreator(const AnfNodePtr &node) {
509 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::Rank>>(node);
510 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
511 }
RealDivPrimitiveCreator(const AnfNodePtr & node)512 std::unique_ptr<schema::PrimitiveT> RealDivPrimitiveCreator(const AnfNodePtr &node) {
513 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::RealDiv>>(node);
514 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
515 }
ReciprocalPrimitiveCreator(const AnfNodePtr & node)516 std::unique_ptr<schema::PrimitiveT> ReciprocalPrimitiveCreator(const AnfNodePtr &node) {
517 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::Reciprocal>>(node);
518 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
519 }
ReduceFusionPrimitiveCreator(const AnfNodePtr & node)520 std::unique_ptr<schema::PrimitiveT> ReduceFusionPrimitiveCreator(const AnfNodePtr &node) {
521 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::ReduceFusion>>(node);
522 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
523 }
ReshapePrimitiveCreator(const AnfNodePtr & node)524 std::unique_ptr<schema::PrimitiveT> ReshapePrimitiveCreator(const AnfNodePtr &node) {
525 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::Reshape>>(node);
526 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
527 }
ResizePrimitiveCreator(const AnfNodePtr & node)528 std::unique_ptr<schema::PrimitiveT> ResizePrimitiveCreator(const AnfNodePtr &node) {
529 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::Resize>>(node);
530 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
531 }
ResizeGradPrimitiveCreator(const AnfNodePtr & node)532 std::unique_ptr<schema::PrimitiveT> ResizeGradPrimitiveCreator(const AnfNodePtr &node) {
533 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::ResizeGrad>>(node);
534 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
535 }
ReverseV2PrimitiveCreator(const AnfNodePtr & node)536 std::unique_ptr<schema::PrimitiveT> ReverseV2PrimitiveCreator(const AnfNodePtr &node) {
537 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::ReverseV2>>(node);
538 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
539 }
ReverseSequencePrimitiveCreator(const AnfNodePtr & node)540 std::unique_ptr<schema::PrimitiveT> ReverseSequencePrimitiveCreator(const AnfNodePtr &node) {
541 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::ReverseSequence>>(node);
542 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
543 }
RfftPrimitiveCreator(const AnfNodePtr & node)544 std::unique_ptr<schema::PrimitiveT> RfftPrimitiveCreator(const AnfNodePtr &node) {
545 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::Rfft>>(node);
546 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
547 }
ROIPoolingPrimitiveCreator(const AnfNodePtr & node)548 std::unique_ptr<schema::PrimitiveT> ROIPoolingPrimitiveCreator(const AnfNodePtr &node) {
549 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::ROIPooling>>(node);
550 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
551 }
RoundPrimitiveCreator(const AnfNodePtr & node)552 std::unique_ptr<schema::PrimitiveT> RoundPrimitiveCreator(const AnfNodePtr &node) {
553 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::Round>>(node);
554 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
555 }
RsqrtPrimitiveCreator(const AnfNodePtr & node)556 std::unique_ptr<schema::PrimitiveT> RsqrtPrimitiveCreator(const AnfNodePtr &node) {
557 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::Rsqrt>>(node);
558 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
559 }
RsqrtGradPrimitiveCreator(const AnfNodePtr & node)560 std::unique_ptr<schema::PrimitiveT> RsqrtGradPrimitiveCreator(const AnfNodePtr &node) {
561 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::RsqrtGrad>>(node);
562 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
563 }
ScaleFusionPrimitiveCreator(const AnfNodePtr & node)564 std::unique_ptr<schema::PrimitiveT> ScaleFusionPrimitiveCreator(const AnfNodePtr &node) {
565 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::ScaleFusion>>(node);
566 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
567 }
ScatterNdPrimitiveCreator(const AnfNodePtr & node)568 std::unique_ptr<schema::PrimitiveT> ScatterNdPrimitiveCreator(const AnfNodePtr &node) {
569 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::ScatterNd>>(node);
570 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
571 }
SelectPrimitiveCreator(const AnfNodePtr & node)572 std::unique_ptr<schema::PrimitiveT> SelectPrimitiveCreator(const AnfNodePtr &node) {
573 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::Select>>(node);
574 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
575 }
SGDPrimitiveCreator(const AnfNodePtr & node)576 std::unique_ptr<schema::PrimitiveT> SGDPrimitiveCreator(const AnfNodePtr &node) {
577 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::SGD>>(node);
578 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
579 }
ShapePrimitiveCreator(const AnfNodePtr & node)580 std::unique_ptr<schema::PrimitiveT> ShapePrimitiveCreator(const AnfNodePtr &node) {
581 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::Shape>>(node);
582 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
583 }
SigmoidCrossEntropyWithLogitsPrimitiveCreator(const AnfNodePtr & node)584 std::unique_ptr<schema::PrimitiveT> SigmoidCrossEntropyWithLogitsPrimitiveCreator(const AnfNodePtr &node) {
585 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::SigmoidCrossEntropyWithLogits>>(node);
586 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
587 }
SigmoidCrossEntropyWithLogitsGradPrimitiveCreator(const AnfNodePtr & node)588 std::unique_ptr<schema::PrimitiveT> SigmoidCrossEntropyWithLogitsGradPrimitiveCreator(const AnfNodePtr &node) {
589 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::SigmoidCrossEntropyWithLogitsGrad>>(node);
590 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
591 }
SinPrimitiveCreator(const AnfNodePtr & node)592 std::unique_ptr<schema::PrimitiveT> SinPrimitiveCreator(const AnfNodePtr &node) {
593 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::Sin>>(node);
594 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
595 }
SizePrimitiveCreator(const AnfNodePtr & node)596 std::unique_ptr<schema::PrimitiveT> SizePrimitiveCreator(const AnfNodePtr &node) {
597 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::Size>>(node);
598 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
599 }
SkipGramPrimitiveCreator(const AnfNodePtr & node)600 std::unique_ptr<schema::PrimitiveT> SkipGramPrimitiveCreator(const AnfNodePtr &node) {
601 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::SkipGram>>(node);
602 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
603 }
SliceFusionPrimitiveCreator(const AnfNodePtr & node)604 std::unique_ptr<schema::PrimitiveT> SliceFusionPrimitiveCreator(const AnfNodePtr &node) {
605 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::SliceFusion>>(node);
606 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
607 }
SmoothL1LossPrimitiveCreator(const AnfNodePtr & node)608 std::unique_ptr<schema::PrimitiveT> SmoothL1LossPrimitiveCreator(const AnfNodePtr &node) {
609 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::SmoothL1Loss>>(node);
610 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
611 }
SmoothL1LossGradPrimitiveCreator(const AnfNodePtr & node)612 std::unique_ptr<schema::PrimitiveT> SmoothL1LossGradPrimitiveCreator(const AnfNodePtr &node) {
613 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::SmoothL1LossGrad>>(node);
614 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
615 }
SoftmaxPrimitiveCreator(const AnfNodePtr & node)616 std::unique_ptr<schema::PrimitiveT> SoftmaxPrimitiveCreator(const AnfNodePtr &node) {
617 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::Softmax>>(node);
618 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
619 }
SoftmaxCrossEntropyWithLogitsPrimitiveCreator(const AnfNodePtr & node)620 std::unique_ptr<schema::PrimitiveT> SoftmaxCrossEntropyWithLogitsPrimitiveCreator(const AnfNodePtr &node) {
621 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::SoftmaxCrossEntropyWithLogits>>(node);
622 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
623 }
SpaceToBatchPrimitiveCreator(const AnfNodePtr & node)624 std::unique_ptr<schema::PrimitiveT> SpaceToBatchPrimitiveCreator(const AnfNodePtr &node) {
625 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::SpaceToBatch>>(node);
626 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
627 }
SpaceToBatchNDPrimitiveCreator(const AnfNodePtr & node)628 std::unique_ptr<schema::PrimitiveT> SpaceToBatchNDPrimitiveCreator(const AnfNodePtr &node) {
629 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::SpaceToBatchND>>(node);
630 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
631 }
SpaceToDepthPrimitiveCreator(const AnfNodePtr & node)632 std::unique_ptr<schema::PrimitiveT> SpaceToDepthPrimitiveCreator(const AnfNodePtr &node) {
633 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::SpaceToDepth>>(node);
634 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
635 }
SparseSoftmaxCrossEntropyWithLogitsPrimitiveCreator(const AnfNodePtr & node)636 std::unique_ptr<schema::PrimitiveT> SparseSoftmaxCrossEntropyWithLogitsPrimitiveCreator(const AnfNodePtr &node) {
637 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::SparseSoftmaxCrossEntropyWithLogits>>(node);
638 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
639 }
SparseToDensePrimitiveCreator(const AnfNodePtr & node)640 std::unique_ptr<schema::PrimitiveT> SparseToDensePrimitiveCreator(const AnfNodePtr &node) {
641 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::SparseToDense>>(node);
642 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
643 }
SplitPrimitiveCreator(const AnfNodePtr & node)644 std::unique_ptr<schema::PrimitiveT> SplitPrimitiveCreator(const AnfNodePtr &node) {
645 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::Split>>(node);
646 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
647 }
SqrtPrimitiveCreator(const AnfNodePtr & node)648 std::unique_ptr<schema::PrimitiveT> SqrtPrimitiveCreator(const AnfNodePtr &node) {
649 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::Sqrt>>(node);
650 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
651 }
SqrtGradPrimitiveCreator(const AnfNodePtr & node)652 std::unique_ptr<schema::PrimitiveT> SqrtGradPrimitiveCreator(const AnfNodePtr &node) {
653 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::SqrtGrad>>(node);
654 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
655 }
SquarePrimitiveCreator(const AnfNodePtr & node)656 std::unique_ptr<schema::PrimitiveT> SquarePrimitiveCreator(const AnfNodePtr &node) {
657 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::Square>>(node);
658 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
659 }
SquaredDifferencePrimitiveCreator(const AnfNodePtr & node)660 std::unique_ptr<schema::PrimitiveT> SquaredDifferencePrimitiveCreator(const AnfNodePtr &node) {
661 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::SquaredDifference>>(node);
662 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
663 }
SqueezePrimitiveCreator(const AnfNodePtr & node)664 std::unique_ptr<schema::PrimitiveT> SqueezePrimitiveCreator(const AnfNodePtr &node) {
665 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::Squeeze>>(node);
666 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
667 }
StackPrimitiveCreator(const AnfNodePtr & node)668 std::unique_ptr<schema::PrimitiveT> StackPrimitiveCreator(const AnfNodePtr &node) {
669 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::Stack>>(node);
670 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
671 }
StridedSlicePrimitiveCreator(const AnfNodePtr & node)672 std::unique_ptr<schema::PrimitiveT> StridedSlicePrimitiveCreator(const AnfNodePtr &node) {
673 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::StridedSlice>>(node);
674 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
675 }
StridedSliceGradPrimitiveCreator(const AnfNodePtr & node)676 std::unique_ptr<schema::PrimitiveT> StridedSliceGradPrimitiveCreator(const AnfNodePtr &node) {
677 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::StridedSliceGrad>>(node);
678 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
679 }
SubFusionPrimitiveCreator(const AnfNodePtr & node)680 std::unique_ptr<schema::PrimitiveT> SubFusionPrimitiveCreator(const AnfNodePtr &node) {
681 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::SubFusion>>(node);
682 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
683 }
SubGradPrimitiveCreator(const AnfNodePtr & node)684 std::unique_ptr<schema::PrimitiveT> SubGradPrimitiveCreator(const AnfNodePtr &node) {
685 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::SubGrad>>(node);
686 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
687 }
SwitchPrimitiveCreator(const AnfNodePtr & node)688 std::unique_ptr<schema::PrimitiveT> SwitchPrimitiveCreator(const AnfNodePtr &node) {
689 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::Switch>>(node);
690 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
691 }
TensorListFromTensorPrimitiveCreator(const AnfNodePtr & node)692 std::unique_ptr<schema::PrimitiveT> TensorListFromTensorPrimitiveCreator(const AnfNodePtr &node) {
693 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::TensorListFromTensor>>(node);
694 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
695 }
TensorListGetItemPrimitiveCreator(const AnfNodePtr & node)696 std::unique_ptr<schema::PrimitiveT> TensorListGetItemPrimitiveCreator(const AnfNodePtr &node) {
697 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::TensorListGetItem>>(node);
698 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
699 }
TensorListReservePrimitiveCreator(const AnfNodePtr & node)700 std::unique_ptr<schema::PrimitiveT> TensorListReservePrimitiveCreator(const AnfNodePtr &node) {
701 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::TensorListReserve>>(node);
702 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
703 }
TensorListSetItemPrimitiveCreator(const AnfNodePtr & node)704 std::unique_ptr<schema::PrimitiveT> TensorListSetItemPrimitiveCreator(const AnfNodePtr &node) {
705 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::TensorListSetItem>>(node);
706 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
707 }
TensorListStackPrimitiveCreator(const AnfNodePtr & node)708 std::unique_ptr<schema::PrimitiveT> TensorListStackPrimitiveCreator(const AnfNodePtr &node) {
709 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::TensorListStack>>(node);
710 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
711 }
TileFusionPrimitiveCreator(const AnfNodePtr & node)712 std::unique_ptr<schema::PrimitiveT> TileFusionPrimitiveCreator(const AnfNodePtr &node) {
713 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::TileFusion>>(node);
714 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
715 }
TopKFusionPrimitiveCreator(const AnfNodePtr & node)716 std::unique_ptr<schema::PrimitiveT> TopKFusionPrimitiveCreator(const AnfNodePtr &node) {
717 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::TopKFusion>>(node);
718 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
719 }
TransposePrimitiveCreator(const AnfNodePtr & node)720 std::unique_ptr<schema::PrimitiveT> TransposePrimitiveCreator(const AnfNodePtr &node) {
721 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::Transpose>>(node);
722 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
723 }
UniquePrimitiveCreator(const AnfNodePtr & node)724 std::unique_ptr<schema::PrimitiveT> UniquePrimitiveCreator(const AnfNodePtr &node) {
725 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::Unique>>(node);
726 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
727 }
UnstackPrimitiveCreator(const AnfNodePtr & node)728 std::unique_ptr<schema::PrimitiveT> UnstackPrimitiveCreator(const AnfNodePtr &node) {
729 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::Unstack>>(node);
730 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
731 }
UnsortedSegmentSumPrimitiveCreator(const AnfNodePtr & node)732 std::unique_ptr<schema::PrimitiveT> UnsortedSegmentSumPrimitiveCreator(const AnfNodePtr &node) {
733 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::UnsortedSegmentSum>>(node);
734 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
735 }
UnsqueezePrimitiveCreator(const AnfNodePtr & node)736 std::unique_ptr<schema::PrimitiveT> UnsqueezePrimitiveCreator(const AnfNodePtr &node) {
737 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::Unsqueeze>>(node);
738 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
739 }
WherePrimitiveCreator(const AnfNodePtr & node)740 std::unique_ptr<schema::PrimitiveT> WherePrimitiveCreator(const AnfNodePtr &node) {
741 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::Where>>(node);
742 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
743 }
ZerosLikePrimitiveCreator(const AnfNodePtr & node)744 std::unique_ptr<schema::PrimitiveT> ZerosLikePrimitiveCreator(const AnfNodePtr &node) {
745 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::ZerosLike>>(node);
746 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
747 }
ErfPrimitiveCreator(const AnfNodePtr & node)748 std::unique_ptr<schema::PrimitiveT> ErfPrimitiveCreator(const AnfNodePtr &node) {
749 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::Erf>>(node);
750 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
751 }
752
SplicePrimitiveCreator(const AnfNodePtr & node)753 std::unique_ptr<schema::PrimitiveT> SplicePrimitiveCreator(const AnfNodePtr &node) {
754 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::Splice>>(node);
755 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
756 }
757
LogSoftmaxPrimitiveCreator(const AnfNodePtr & node)758 std::unique_ptr<schema::PrimitiveT> LogSoftmaxPrimitiveCreator(const AnfNodePtr &node) {
759 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::LogSoftmax>>(node);
760 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
761 }
762
CallPrimitiveCreator(const AnfNodePtr & node)763 std::unique_ptr<schema::PrimitiveT> CallPrimitiveCreator(const AnfNodePtr &node) {
764 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::Call>>(node);
765 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
766 }
767
CumSumPrimitiveCreator(const AnfNodePtr & node)768 std::unique_ptr<schema::PrimitiveT> CumSumPrimitiveCreator(const AnfNodePtr &node) {
769 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::CumSum>>(node);
770 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
771 }
772
SplitWithOverlapPrimitiveCreator(const AnfNodePtr & node)773 std::unique_ptr<schema::PrimitiveT> SplitWithOverlapPrimitiveCreator(const AnfNodePtr &node) {
774 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::SplitWithOverlap>>(node);
775 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
776 }
777
GluPrimitiveCreator(const AnfNodePtr & node)778 std::unique_ptr<schema::PrimitiveT> GluPrimitiveCreator(const AnfNodePtr &node) {
779 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::GLU>>(node);
780 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
781 }
782
TensorArrayPrimitiveCreator(const AnfNodePtr & node)783 std::unique_ptr<schema::PrimitiveT> TensorArrayPrimitiveCreator(const AnfNodePtr &node) {
784 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::TensorArray>>(node);
785 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
786 }
787
TensorArrayReadPrimitiveCreator(const AnfNodePtr & node)788 std::unique_ptr<schema::PrimitiveT> TensorArrayReadPrimitiveCreator(const AnfNodePtr &node) {
789 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::TensorArrayRead>>(node);
790 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
791 }
792
TensorArrayWritePrimitiveCreator(const AnfNodePtr & node)793 std::unique_ptr<schema::PrimitiveT> TensorArrayWritePrimitiveCreator(const AnfNodePtr &node) {
794 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::TensorArrayWrite>>(node);
795 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
796 }
797
AffinePrimitiveCreator(const AnfNodePtr & node)798 std::unique_ptr<schema::PrimitiveT> AffinePrimitiveCreator(const AnfNodePtr &node) {
799 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::Affine>>(node);
800 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
801 }
802
AttentionPrimitiveCreator(const AnfNodePtr & node)803 std::unique_ptr<schema::PrimitiveT> AttentionPrimitiveCreator(const AnfNodePtr &node) {
804 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::Attention>>(node);
805 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
806 }
807
ScatterNdUpdatePrimitiveCreator(const AnfNodePtr & node)808 std::unique_ptr<schema::PrimitiveT> ScatterNdUpdatePrimitiveCreator(const AnfNodePtr &node) {
809 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::ScatterNdUpdate>>(node);
810 return ms_primc != nullptr ? ops::MSOp2SchemaOp(ms_primc.get()) : nullptr;
811 }
812
813 RegistryMSOps g_absPrimitiveCreatorRegistry("Abs", AbsPrimitiveCreator);
814 RegistryMSOps g_absGradPrimitiveCreatorRegistry("AbsGrad", AbsGradPrimitiveCreator);
815 RegistryMSOps g_activationPrimitiveCreatorRegistry("Activation", ActivationPrimitiveCreator);
816 RegistryMSOps g_activationGradPrimitiveCreatorRegistry("ActivationGrad", ActivationGradPrimitiveCreator);
817 RegistryMSOps g_reluGradPrimitiveCreatorRegistry("ReluGrad", ActivationGradPrimitiveCreator); // ?
818 RegistryMSOps g_addPrimitiveCreatorRegistry("Add", AddFusionPrimitiveCreator);
819 RegistryMSOps g_addFusionPrimitiveCreatorRegistry("AddFusion", AddFusionPrimitiveCreator);
820 RegistryMSOps g_addGradPrimitiveCreatorRegistry("AddGrad", AddGradPrimitiveCreator);
821 RegistryMSOps g_adamPrimitiveCreatorRegistry("Adam", AdamPrimitiveCreator);
822 RegistryMSOps g_adderPrimitiveCreatorRegistry("Adder", AdderFusionPrimitiveCreator);
823 RegistryMSOps g_adderFusionPrimitiveCreatorRegistry("AdderFusion", AdderFusionPrimitiveCreator);
824 RegistryMSOps g_addNPrimitiveCreatorRegistry("AddN", AddNPrimitiveCreator);
825 RegistryMSOps g_allPrimitiveCreatorRegistry("All", AllPrimitiveCreator);
826 RegistryMSOps g_applyMomentumPrimitiveCreatorRegistry("ApplyMomentum", ApplyMomentumPrimitiveCreator);
827 RegistryMSOps g_argMaxPrimitiveCreatorRegistry("ArgMax", ArgMaxFusionPrimitiveCreator);
828 RegistryMSOps g_argMaxFusionPrimitiveCreatorRegistry("ArgMaxFusion", ArgMaxFusionPrimitiveCreator);
829 RegistryMSOps g_argMinPrimitiveCreatorRegistry("ArgMin", ArgMinFusionPrimitiveCreator);
830 RegistryMSOps g_argMinFusionPrimitiveCreatorRegistry("ArgMinFusion", ArgMinFusionPrimitiveCreator);
831 RegistryMSOps g_assertPrimitiveCreatorRegistry("Assert", AssertPrimitiveCreator);
832 RegistryMSOps g_assignPrimitiveCreatorRegistry("Assign", AssignPrimitiveCreator);
833 RegistryMSOps g_assignAddPrimitiveCreatorRegistry("AssignAdd", AssignAddPrimitiveCreator);
834 RegistryMSOps g_audioSpectrogramPrimitiveCreatorRegistry("AudioSpectrogram", AudioSpectrogramPrimitiveCreator);
835 RegistryMSOps g_avgPoolPrimitiveCreatorRegistry("AvgPool", AvgPoolFusionPrimitiveCreator);
836 RegistryMSOps g_avgPoolFusionPrimitiveCreatorRegistry("AvgPoolFusion", AvgPoolFusionPrimitiveCreator);
837 RegistryMSOps g_avgPoolGradPrimitiveCreatorRegistry("AvgPoolGrad", AvgPoolGradPrimitiveCreator);
838 RegistryMSOps g_avgPoolGradGpuPrimitiveCreatorRegistry("AvgPoolGradGpu", AvgPoolGradPrimitiveCreator);
839 RegistryMSOps g_avgPoolGradCpuPrimitiveCreatorRegistry("AvgPoolGradCpu", AvgPoolGradPrimitiveCreator);
840 RegistryMSOps g_batchNormPrimitiveCreatorRegistry("BatchNorm", BatchNormPrimitiveCreator);
841 RegistryMSOps g_batchToSpacePrimitiveCreatorRegistry("BatchToSpace", BatchToSpacePrimitiveCreator);
842 RegistryMSOps g_batchToSpaceNDPrimitiveCreatorRegistry("BatchToSpaceND", BatchToSpaceNDPrimitiveCreator);
843 RegistryMSOps g_biasAddPrimitiveCreatorRegistry("BiasAdd", BiasAddPrimitiveCreator);
844 RegistryMSOps g_biasGradAddPrimitiveCreatorRegistry("BiasGrad", BiasAddGradPrimitiveCreator);
845 RegistryMSOps g_biasAddGradAddPrimitiveCreatorRegistry("BiasAddGrad", BiasAddGradPrimitiveCreator);
846 RegistryMSOps g_bNGradPrimitiveCreatorRegistry("BatchNormGrad", BNGradPrimitiveCreator);
847 RegistryMSOps g_broadcastToPrimitiveCreatorRegistry("BroadcastTo", BroadcastToPrimitiveCreator);
848 RegistryMSOps g_castPrimitiveCreatorRegistry("Cast", CastPrimitiveCreator);
849 RegistryMSOps g_ceilPrimitiveCreatorRegistry("Ceil", CeilPrimitiveCreator);
850 RegistryMSOps g_clipPrimitiveCreatorRegistry("Clip", ClipPrimitiveCreator);
851 RegistryMSOps g_concatPrimitiveCreatorRegistry("Concat", ConcatPrimitiveCreator);
852 RegistryMSOps g_conv2DBackpropFilterFusionPrimitiveCreatorRegistry("Conv2DBackpropFilterFusion",
853 Conv2DBackpropFilterFusionPrimitiveCreator);
854 RegistryMSOps g_conv2DBackpropInputFusionPrimitiveCreatorRegistry("Conv2DBackpropInputFusion",
855 Conv2DBackpropInputFusionPrimitiveCreator);
856 RegistryMSOps g_conv2DPrimitiveCreatorRegistry("Conv2D", Conv2DFusionPrimitiveCreator);
857 RegistryMSOps g_conv2DFusionPrimitiveCreatorRegistry("Conv2DFusion", Conv2DFusionPrimitiveCreator);
858 RegistryMSOps g_conv2dTransposePrimitiveCreatorRegistry("Conv2dTranspose", Conv2dTransposeFusionPrimitiveCreator);
859 RegistryMSOps g_conv2dTransposeFusionPrimitiveCreatorRegistry("Conv2dTransposeFusion",
860 Conv2dTransposeFusionPrimitiveCreator);
861 RegistryMSOps g_constantOfShapePrimitiveCreatorRegistry("ConstantOfShape", ConstantOfShapePrimitiveCreator);
862 RegistryMSOps g_cosPrimitiveCreatorRegistry("Cos", CosPrimitiveCreator);
863 RegistryMSOps g_cropPrimitiveCreatorRegistry("Crop", CropPrimitiveCreator);
864 RegistryMSOps g_cropAndResizePrimitiveCreatorRegistry("CropAndResize", CropAndResizePrimitiveCreator);
865 RegistryMSOps g_customExtractFeaturesPrimitiveCreatorRegistry("CustomExtractFeatures",
866 CustomExtractFeaturesPrimitiveCreator);
867 RegistryMSOps g_customNormalizePrimitiveCreatorRegistry("CustomNormalize", CustomNormalizePrimitiveCreator);
868 RegistryMSOps g_customPredictPrimitiveCreatorRegistry("CustomPredict", CustomPredictPrimitiveCreator);
869 RegistryMSOps g_dependPrimitiveCreatorRegistry("Depend", DependPrimitiveCreator);
870 RegistryMSOps g_depthToSpacePrimitiveCreatorRegistry("DepthToSpace", DepthToSpacePrimitiveCreator);
871 RegistryMSOps g_detectionPostProcessPrimitiveCreatorRegistry("DetectionPostProcess",
872 DetectionPostProcessPrimitiveCreator);
873 RegistryMSOps g_divPrimitiveCreatorRegistry("Div", DivFusionPrimitiveCreator);
874 RegistryMSOps g_divFusionPrimitiveCreatorRegistry("DivFusion", DivFusionPrimitiveCreator);
875 RegistryMSOps g_divGradPrimitiveCreatorRegistry("DivGrad", DivGradPrimitiveCreator);
876 RegistryMSOps g_dropoutPrimitiveCreatorRegistry("Dropout", DropoutPrimitiveCreator);
877 RegistryMSOps g_dropoutGradPrimitiveCreatorRegistry("DropoutGrad", DropoutGradPrimitiveCreator);
878 RegistryMSOps g_eltwisePrimitiveCreatorRegistry("Eltwise", EltwisePrimitiveCreator);
879 RegistryMSOps g_eluPrimitiveCreatorRegistry("Elu", EluPrimitiveCreator);
880 RegistryMSOps g_eluGradPrimitiveCreatorRegistry("EluGrad", ActivationGradPrimitiveCreator);
881 RegistryMSOps g_equalPrimitiveCreatorRegistry("Equal", EqualPrimitiveCreator);
882 RegistryMSOps g_embeddingLookupFusionPrimitiveCreatorRegistry("EmbeddingLookupFusion",
883 EmbeddingLookupFusionPrimitiveCreator);
884 RegistryMSOps g_expandDimsPrimitiveCreatorRegistry("ExpandDims", ExpandDimsPrimitiveCreator);
885 RegistryMSOps g_expPrimitiveCreatorRegistry("Exp", ExpFusionPrimitiveCreator);
886 RegistryMSOps g_expFusionPrimitiveCreatorRegistry("ExpFusion", ExpFusionPrimitiveCreator);
887 RegistryMSOps g_fftImagPrimitiveCreatorRegistry("FftImag", FftImagPrimitiveCreator);
888 RegistryMSOps g_fftRealPrimitiveCreatorRegistry("FftReal", FftRealPrimitiveCreator);
889 RegistryMSOps g_fillPrimitiveCreatorRegistry("Fill", FillPrimitiveCreator);
890 RegistryMSOps g_flattenPrimitiveCreatorRegistry("Flatten", FlattenPrimitiveCreator);
891 RegistryMSOps g_flattenGradPrimitiveCreatorRegistry("FlattenGrad", FlattenGradPrimitiveCreator);
892 RegistryMSOps g_floorPrimitiveCreatorRegistry("Floor", FloorPrimitiveCreator);
893 RegistryMSOps g_floorDivPrimitiveCreatorRegistry("FloorDiv", FloorDivPrimitiveCreator);
894 RegistryMSOps g_floorModPrimitiveCreatorRegistry("FloorMod", FloorModPrimitiveCreator);
895 RegistryMSOps g_fullConnectionPrimitiveCreatorRegistry("FullConnection", FullConnectionPrimitiveCreator);
896 RegistryMSOps g_fusedBatchNormPrimitiveCreatorRegistry("FusedBatchNorm", FusedBatchNormPrimitiveCreator);
897 RegistryMSOps g_gatherPrimitiveCreatorRegistry("Gather", GatherPrimitiveCreator);
898 RegistryMSOps g_gatherNdPrimitiveCreatorRegistry("GatherNd", GatherNdPrimitiveCreator);
899 RegistryMSOps g_greaterPrimitiveCreatorRegistry("Greater", GreaterPrimitiveCreator);
900 RegistryMSOps g_greaterEqualPrimitiveCreatorRegistry("GreaterEqual", GreaterEqualPrimitiveCreator);
901 RegistryMSOps g_gRUPrimitiveCreatorRegistry("GRU", GRUPrimitiveCreator);
902 RegistryMSOps g_hashtableLookupPrimitiveCreatorRegistry("HashtableLookup", HashtableLookupPrimitiveCreator);
903 RegistryMSOps g_instanceNormPrimitiveCreatorRegistry("InstanceNorm", InstanceNormPrimitiveCreator);
904 RegistryMSOps g_invertPermutationPrimitiveCreatorRegistry("InvertPermutation", InvertPermutationPrimitiveCreator);
905 RegistryMSOps g_layerNormPrimitiveCreatorRegistry("LayerNorm", LayerNormFusionPrimitiveCreator);
906 RegistryMSOps g_layerNormFusionPrimitiveCreatorRegistry("LayerNormFusion", LayerNormFusionPrimitiveCreator);
907 RegistryMSOps g_layerNormGradPrimitiveCreatorRegistry("LayerNormGrad", LayerNormGradPrimitiveCreator);
908 RegistryMSOps g_leakyReluPrimitiveCreatorRegistry("LeakyRelu", LeakyReluPrimitiveCreator);
909 RegistryMSOps g_lessPrimitiveCreatorRegistry("Less", LessPrimitiveCreator);
910 RegistryMSOps g_lessEqualPrimitiveCreatorRegistry("LessEqual", LessEqualPrimitiveCreator);
911 RegistryMSOps g_logPrimitiveCreatorRegistry("Log", LogPrimitiveCreator);
912 RegistryMSOps g_logGradPrimitiveCreatorRegistry("LogGrad", LogGradPrimitiveCreator);
913 RegistryMSOps g_logicalAndPrimitiveCreatorRegistry("LogicalAnd", LogicalAndPrimitiveCreator);
914 RegistryMSOps g_logicalNotPrimitiveCreatorRegistry("LogicalNot", LogicalNotPrimitiveCreator);
915 RegistryMSOps g_logicalOrPrimitiveCreatorRegistry("LogicalOr", LogicalOrPrimitiveCreator);
916 RegistryMSOps g_lpNormalizationPrimitiveCreatorRegistry("LpNormalization", LpNormalizationPrimitiveCreator);
917 RegistryMSOps g_lrnPrimitiveCreatorRegistry("LRN", LrnPrimitiveCreator);
918 RegistryMSOps g_lshProjectionPrimitiveCreatorRegistry("LshProjection", LshProjectionPrimitiveCreator);
919 RegistryMSOps g_lSTMPrimitiveCreatorRegistry("LSTM", LSTMPrimitiveCreator);
920 RegistryMSOps g_lSTMGradPrimitiveCreatorRegistry("LSTMGrad", LSTMGradPrimitiveCreator);
921 RegistryMSOps g_l2NormalizeFusionPrimitiveCreatorRegistry("L2NormalizeFusion", L2NormalizeFusionPrimitiveCreator);
922 RegistryMSOps g_matMulFusionPrimitiveCreatorRegistry("MatMulFusion", MatMulFusionPrimitiveCreator);
923 RegistryMSOps g_matMulPrimitiveCreatorRegistry("MatMul", MatMulFusionPrimitiveCreator);
924 RegistryMSOps g_maximumPrimitiveCreatorRegistry("Maximum", MaximumPrimitiveCreator);
925 RegistryMSOps g_maximumGradPrimitiveCreatorRegistry("MaximumGrad", MaximumGradPrimitiveCreator);
926 RegistryMSOps g_maxPoolPrimitiveCreatorRegistry("MaxPool", MaxPoolFusionPrimitiveCreator);
927 RegistryMSOps g_maxPoolFusionPrimitiveCreatorRegistry("MaxPoolFusion", MaxPoolFusionPrimitiveCreator);
928 RegistryMSOps g_maxPoolGradPrimitiveCreatorRegistry("MaxPoolGrad", MaxPoolGradPrimitiveCreator);
929 RegistryMSOps g_mergePrimitiveCreatorRegistry("Merge", MergePrimitiveCreator);
930 RegistryMSOps g_mfccPrimitiveCreatorRegistry("Mfcc", MfccPrimitiveCreator);
931 RegistryMSOps g_minimumPrimitiveCreatorRegistry("Minimum", MinimumPrimitiveCreator);
932 RegistryMSOps g_minimumGradPrimitiveCreatorRegistry("MinimumGrad", MinimumGradPrimitiveCreator);
933 RegistryMSOps g_modPrimitiveCreatorRegistry("Mod", ModPrimitiveCreator);
934 RegistryMSOps g_mulPrimitiveCreatorRegistry("Mul", MulFusionPrimitiveCreator);
935 RegistryMSOps g_mulMulFusionPrimitiveCreatorRegistry("MulFusion", MulFusionPrimitiveCreator);
936 RegistryMSOps g_mulGradPrimitiveCreatorRegistry("MulGrad", MulGradPrimitiveCreator);
937 RegistryMSOps g_negPrimitiveCreatorRegistry("Neg", NegPrimitiveCreator);
938 RegistryMSOps g_negGradPrimitiveCreatorRegistry("NegGrad", NegGradPrimitiveCreator);
939 RegistryMSOps g_nonMaxSuppressionPrimitiveCreatorRegistry("NonMaxSuppression", NonMaxSuppressionPrimitiveCreator);
940 RegistryMSOps g_notEqualPrimitiveCreatorRegistry("NotEqual", NotEqualPrimitiveCreator);
941 RegistryMSOps g_oneHotPrimitiveCreatorRegistry("OneHot", OneHotPrimitiveCreator);
942 RegistryMSOps g_onesLikePrimitiveCreatorRegistry("OnesLike", OnesLikePrimitiveCreator);
943 RegistryMSOps g_padPrimitiveCreatorRegistry("Pad", PadFusionPrimitiveCreator);
944 RegistryMSOps g_padFusionPrimitiveCreatorRegistry("PadFusion", PadFusionPrimitiveCreator);
945 RegistryMSOps g_partialFusionPrimitiveCreatorRegistry("PartialFusion", PartialFusionPrimitiveCreator);
946 RegistryMSOps g_powerGradPrimitiveCreatorRegistry("PowerGrad", PowerGradPrimitiveCreator);
947 RegistryMSOps g_powFusionPrimitiveCreatorRegistry("PowFusion", PowFusionPrimitiveCreator);
948 RegistryMSOps g_pReLUFusionPrimitiveCreatorRegistry("PReLUFusion", PReLUFusionPrimitiveCreator);
949 RegistryMSOps g_RandomStandardNormalPrimitiveCreatorRegistry("RandomStandardNormal",
950 RandomStandardNormalPrimitiveCreator);
951 RegistryMSOps g_raggedRangePrimitiveCreatorRegistry("RaggedRange", RaggedRangePrimitiveCreator);
952 RegistryMSOps g_rangePrimitiveCreatorRegistry("Range", RangePrimitiveCreator);
953 RegistryMSOps g_rankPrimitiveCreatorRegistry("Rank", RankPrimitiveCreator);
954 RegistryMSOps g_reciprocalPrimitiveCreatorRegistry("Reciprocal", ReciprocalPrimitiveCreator);
955 RegistryMSOps g_realDivPrimitiveCreatorRegistry("RealDiv", RealDivPrimitiveCreator);
956 RegistryMSOps g_reducePrimitiveCreatorRegistry("Reduce", ReduceFusionPrimitiveCreator);
957 RegistryMSOps g_reduceFusionPrimitiveCreatorRegistry("ReduceFusion", ReduceFusionPrimitiveCreator);
958 RegistryMSOps g_reshapePrimitiveCreatorRegistry("Reshape", ReshapePrimitiveCreator);
959 RegistryMSOps g_resizePrimitiveCreatorRegistry("Resize", ResizePrimitiveCreator);
960 RegistryMSOps g_resizeGradPrimitiveCreatorRegistry("ResizeGrad", ResizeGradPrimitiveCreator);
961 RegistryMSOps g_resizeBilinearGradPrimitiveCreatorRegistry("ResizeBilinearGrad", ResizeGradPrimitiveCreator);
962 RegistryMSOps g_resizeNearestNeighborGradPrimitiveCreatorRegistry("ResizeNearestNeighborGrad",
963 ResizeGradPrimitiveCreator);
964 RegistryMSOps g_reverseV2PrimitiveCreatorRegistry("ReverseV2", ReverseV2PrimitiveCreator);
965 RegistryMSOps g_reverseSequencePrimitiveCreatorRegistry("ReverseSequence", ReverseSequencePrimitiveCreator);
966 RegistryMSOps g_rfftPrimitiveCreatorRegistry("Rfft", RfftPrimitiveCreator);
967 RegistryMSOps g_rOIPoolingPrimitiveCreatorRegistry("ROIPooling", ROIPoolingPrimitiveCreator);
968 RegistryMSOps g_roundPrimitiveCreatorRegistry("Round", RoundPrimitiveCreator);
969 RegistryMSOps g_rsqrtPrimitiveCreatorRegistry("Rsqrt", RsqrtPrimitiveCreator);
970 RegistryMSOps g_rsqrtGradPrimitiveCreatorRegistry("RsqrtGrad", RsqrtGradPrimitiveCreator);
971 RegistryMSOps g_quantDTypeCastPrimitiveCreatorRegistry("QuantDTypeCast", QuantDTypeCastPrimitiveCreator);
972 RegistryMSOps g_scalePrimitiveCreatorRegistry("Scale", ScaleFusionPrimitiveCreator);
973 RegistryMSOps g_scaleFusionPrimitiveCreatorRegistry("ScaleFusion", ScaleFusionPrimitiveCreator);
974 RegistryMSOps g_scatterNdPrimitiveCreatorRegistry("ScatterNd", ScatterNdPrimitiveCreator);
975 RegistryMSOps g_selectPrimitiveCreatorRegistry("Select", SelectPrimitiveCreator);
976 RegistryMSOps g_SGDPrimitiveCreatorRegistry("SGD", SGDPrimitiveCreator);
977 RegistryMSOps g_shapePrimitiveCreatorRegistry("Shape", ShapePrimitiveCreator);
978 RegistryMSOps g_sigmoidCrossEntropyWithLogitsPrimitiveCreatorRegistry("SigmoidCrossEntropyWithLogits",
979 SigmoidCrossEntropyWithLogitsPrimitiveCreator);
980 RegistryMSOps g_sigmoidCrossEntropyWithLogitsGradPrimitiveCreatorRegistry(
981 "SigmoidCrossEntropyWithLogitsGrad", SigmoidCrossEntropyWithLogitsGradPrimitiveCreator);
982 RegistryMSOps g_sinPrimitiveCreatorRegistry("Sin", SinPrimitiveCreator);
983 RegistryMSOps g_sizePrimitiveCreatorRegistry("Size", SizePrimitiveCreator);
984 RegistryMSOps g_skipGramPrimitiveCreatorRegistry("SkipGram", SkipGramPrimitiveCreator);
985 RegistryMSOps g_sliceFusionPrimitiveCreatorRegistry("SliceFusion", SliceFusionPrimitiveCreator);
986 RegistryMSOps g_smoothL1LossPrimitiveCreatorRegistry("SmoothL1Loss", SmoothL1LossPrimitiveCreator);
987 RegistryMSOps g_smoothL1LossGradPrimitiveCreatorRegistry("SmoothL1LossGrad", SmoothL1LossGradPrimitiveCreator);
988 RegistryMSOps g_softmaxPrimitiveCreatorRegistry("Softmax", SoftmaxPrimitiveCreator);
989 RegistryMSOps g_softmaxCrossEntropyWithLogitsPrimitiveCreatorRegistry("SoftmaxCrossEntropyWithLogits",
990 SoftmaxCrossEntropyWithLogitsPrimitiveCreator);
991 RegistryMSOps g_spaceToBatchPrimitiveCreatorRegistry("SpaceToBatch", SpaceToBatchPrimitiveCreator);
992 RegistryMSOps g_spaceToBatchNDPrimitiveCreatorRegistry("SpaceToBatchND", SpaceToBatchNDPrimitiveCreator);
993 RegistryMSOps g_spaceToDepthPrimitiveCreatorRegistry("SpaceToDepth", SpaceToDepthPrimitiveCreator);
994 RegistryMSOps g_sparseSoftmaxCrossEntropyWithLogitsPrimitiveCreatorRegistry(
995 "SparseSoftmaxCrossEntropyWithLogits", SparseSoftmaxCrossEntropyWithLogitsPrimitiveCreator);
996 RegistryMSOps g_sparseToDensePrimitiveCreatorRegistry("SparseToDense", SparseToDensePrimitiveCreator);
997 RegistryMSOps g_splitPrimitiveCreatorRegistry("Split", SplitPrimitiveCreator);
998 RegistryMSOps g_sqrtPrimitiveCreatorRegistry("Sqrt", SqrtPrimitiveCreator);
999 RegistryMSOps g_sqrtGradPrimitiveCreatorRegistry("SqrtGrad", SqrtGradPrimitiveCreator);
1000 RegistryMSOps g_squeezePrimitiveCreatorRegistry("Squeeze", SqueezePrimitiveCreator);
1001 RegistryMSOps g_squarePrimitiveCreatorRegistry("Square", SquarePrimitiveCreator);
1002 RegistryMSOps g_squaredDifferencePrimitiveCreatorRegistry("SquaredDifference", SquaredDifferencePrimitiveCreator);
1003 RegistryMSOps g_stackPrimitiveCreatorRegistry("Stack", StackPrimitiveCreator);
1004 RegistryMSOps g_stridedSlicePrimitiveCreatorRegistry("StridedSlice", StridedSlicePrimitiveCreator);
1005 RegistryMSOps g_stridedSliceGradPrimitiveCreatorRegistry("StridedSliceGrad", StridedSliceGradPrimitiveCreator);
1006 RegistryMSOps g_subPrimitiveCreatorRegistry("Sub", SubFusionPrimitiveCreator);
1007 RegistryMSOps g_subFusionPrimitiveCreatorRegistry("SubFusion", SubFusionPrimitiveCreator);
1008 RegistryMSOps g_subGradPrimitiveCreatorRegistry("SubGrad", SubGradPrimitiveCreator);
1009 RegistryMSOps g_switchPrimitiveCreatorRegistry("Switch", SwitchPrimitiveCreator);
1010 RegistryMSOps g_tensorListFromTensorPrimitiveCreatorRegistry("TensorListFromTensor",
1011 TensorListFromTensorPrimitiveCreator);
1012 RegistryMSOps g_tensorListGetItemPrimitiveCreatorRegistry("TensorListGetItem", TensorListGetItemPrimitiveCreator);
1013 RegistryMSOps g_tensorListReservePrimitiveCreatorRegistry("TensorListReserve", TensorListReservePrimitiveCreator);
1014 RegistryMSOps g_tensorListSetItemPrimitiveCreatorRegistry("TensorListSetItem", TensorListSetItemPrimitiveCreator);
1015 RegistryMSOps g_tensorListStackPrimitiveCreatorRegistry("TensorListStack", TensorListStackPrimitiveCreator);
1016 RegistryMSOps g_tileFusionPrimitiveCreatorRegistry("TileFusion", TileFusionPrimitiveCreator);
1017 RegistryMSOps g_topKPrimitiveCreatorRegistry("TopK", TopKFusionPrimitiveCreator);
1018 RegistryMSOps g_topKFusionPrimitiveCreatorRegistry("TopKFusion", TopKFusionPrimitiveCreator);
1019 RegistryMSOps g_transposePrimitiveCreatorxRegistry("Transpose", TransposePrimitiveCreator);
1020 RegistryMSOps g_uniquePrimitiveCreatorRegistry("Unique", UniquePrimitiveCreator);
1021 RegistryMSOps g_unstackPrimitiveCreatorRegistry("Unstack", UnstackPrimitiveCreator);
1022 RegistryMSOps g_unsortedSegmentSumPrimitiveCreatorRegistry("UnsortedSegmentSum", UnsortedSegmentSumPrimitiveCreator);
1023 RegistryMSOps g_unsqueezePrimitiveCreatorRegistry("Unsqueeze", UnsqueezePrimitiveCreator);
1024 RegistryMSOps g_wherePrimitiveCreatorRegistry("Where", WherePrimitiveCreator);
1025 RegistryMSOps g_zerosLikePrimitiveCreatorRegistry("ZerosLike", ZerosLikePrimitiveCreator);
1026 RegistryMSOps g_erfPrimitiveCreatorRegistry("Erf", ErfPrimitiveCreator);
1027 RegistryMSOps g_SplicePrimitiveCreatorRegistry("Splice", SplicePrimitiveCreator);
1028 RegistryMSOps g_LogSoftmaxPrimitiveCreatorRegistry("LogSoftmax", LogSoftmaxPrimitiveCreator);
1029 RegistryMSOps g_CallPrimitiveCreatorRegistry("call", CallPrimitiveCreator);
1030 RegistryMSOps g_CumSumPrimitiveCreatorRegistry("CumSum", CumSumPrimitiveCreator);
1031 RegistryMSOps g_SplitWithOverlapCreatorRegistry("SplitWithOverlap", SplitWithOverlapPrimitiveCreator);
1032 RegistryMSOps g_GluCreatorRegistry("GLU", GluPrimitiveCreator);
1033 RegistryMSOps g_TensorArrayCreatorRegistry("TensorArray", TensorArrayPrimitiveCreator);
1034 RegistryMSOps g_TensorArrayReadCreatorRegistry("TensorArrayRead", TensorArrayReadPrimitiveCreator);
1035 RegistryMSOps g_TensorArrayWriteCreatorRegistry("TensorArrayWrite", TensorArrayWritePrimitiveCreator);
1036 RegistryMSOps g_AffineCreatorRegistry("Affine", AffinePrimitiveCreator);
1037 RegistryMSOps g_AttentionCreatorRegistry("Attention", AttentionPrimitiveCreator);
1038 RegistryMSOps g_ScatterNdUpdateCreatorRegistry("ScatterNdUpdate", ScatterNdUpdatePrimitiveCreator);
1039
CustomPrimitiveCreator(const AnfNodePtr & node)1040 std::unique_ptr<schema::PrimitiveT> CustomPrimitiveCreator(const AnfNodePtr &node) {
1041 auto ms_primc = GetValueNode<std::shared_ptr<mindspore::ops::Custom>>(node);
1042 auto schema_op = std::make_unique<schema::CustomT>();
1043 if (schema_op == nullptr) {
1044 return nullptr;
1045 }
1046 if (ms_primc->GetAttr("type") != nullptr) {
1047 schema_op->type = ms_primc->get_type();
1048 }
1049 if (ms_primc->GetAttr("attr") != nullptr) {
1050 auto attr_map = ms_primc->get_attr();
1051 for (const auto &attr_item : attr_map) {
1052 auto attr = std::make_unique<schema::AttributeT>();
1053 if (attr == nullptr) {
1054 return nullptr;
1055 }
1056 attr->name = attr_item.first;
1057 attr->data = attr_item.second;
1058 schema_op->attr.emplace_back(std::move(attr));
1059 }
1060 }
1061
1062 auto prim = std::make_unique<schema::PrimitiveT>();
1063 if (prim == nullptr) {
1064 return nullptr;
1065 }
1066 prim->value.value = schema_op.release();
1067 prim->value.type = schema::PrimitiveType_Custom;
1068 return prim;
1069 }
1070
1071 RegistryMSOps g_CustomPrimitiveCreatorRegistry("Custom", CustomPrimitiveCreator);
1072 } // namespace lite
1073 } // namespace mindspore
1074
1075 #endif
1076