• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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