- m_ParserFunctions[Layer_AbsLayer] = &Deserializer::ParseAbs;
- m_ParserFunctions[Layer_ActivationLayer] = &Deserializer::ParseActivation;
- m_ParserFunctions[Layer_AdditionLayer] = &Deserializer::ParseAdd;
- m_ParserFunctions[Layer_ArgMinMaxLayer] = &Deserializer::ParseArgMinMax;
- m_ParserFunctions[Layer_BatchToSpaceNdLayer] = &Deserializer::ParseBatchToSpaceNd;
- m_ParserFunctions[Layer_BatchNormalizationLayer] = &Deserializer::ParseBatchNormalization;
- m_ParserFunctions[Layer_ComparisonLayer] = &Deserializer::ParseComparison;
- m_ParserFunctions[Layer_ConcatLayer] = &Deserializer::ParseConcat;
- m_ParserFunctions[Layer_ConstantLayer] = &Deserializer::ParseConstant;
- m_ParserFunctions[Layer_Convolution2dLayer] = &Deserializer::ParseConvolution2d;
- m_ParserFunctions[Layer_DepthToSpaceLayer] = &Deserializer::ParseDepthToSpace;
- m_ParserFunctions[Layer_DepthwiseConvolution2dLayer] = &Deserializer::ParseDepthwiseConvolution2d;
- m_ParserFunctions[Layer_DequantizeLayer] = &Deserializer::ParseDequantize;
- m_ParserFunctions[Layer_DetectionPostProcessLayer] = &Deserializer::ParseDetectionPostProcess;
- m_ParserFunctions[Layer_DivisionLayer] = &Deserializer::ParseDivision;
- m_ParserFunctions[Layer_ElementwiseUnaryLayer] = &Deserializer::ParseElementwiseUnary;
- m_ParserFunctions[Layer_EqualLayer] = &Deserializer::ParseEqual;
- m_ParserFunctions[Layer_FullyConnectedLayer] = &Deserializer::ParseFullyConnected;
- m_ParserFunctions[Layer_FillLayer] = &Deserializer::ParseFill;
- m_ParserFunctions[Layer_FloorLayer] = &Deserializer::ParseFloor;
- m_ParserFunctions[Layer_GatherLayer] = &Deserializer::ParseGather;
- m_ParserFunctions[Layer_GreaterLayer] = &Deserializer::ParseGreater;
- m_ParserFunctions[Layer_InstanceNormalizationLayer] = &Deserializer::ParseInstanceNormalization;
- m_ParserFunctions[Layer_L2NormalizationLayer] = &Deserializer::ParseL2Normalization;
- m_ParserFunctions[Layer_LogicalBinaryLayer] = &Deserializer::ParseLogicalBinary;
- m_ParserFunctions[Layer_LogSoftmaxLayer] = &Deserializer::ParseLogSoftmax;
- m_ParserFunctions[Layer_LstmLayer] = &Deserializer::ParseLstm;
- m_ParserFunctions[Layer_MaximumLayer] = &Deserializer::ParseMaximum;
- m_ParserFunctions[Layer_MeanLayer] = &Deserializer::ParseMean;
- m_ParserFunctions[Layer_MinimumLayer] = &Deserializer::ParseMinimum;
- m_ParserFunctions[Layer_MergeLayer] = &Deserializer::ParseMerge;
- m_ParserFunctions[Layer_MergerLayer] = &Deserializer::ParseConcat;
- m_ParserFunctions[Layer_MultiplicationLayer] = &Deserializer::ParseMultiplication;
- m_ParserFunctions[Layer_NormalizationLayer] = &Deserializer::ParseNormalization;
- m_ParserFunctions[Layer_PadLayer] = &Deserializer::ParsePad;
- m_ParserFunctions[Layer_PermuteLayer] = &Deserializer::ParsePermute;
- m_ParserFunctions[Layer_Pooling2dLayer] = &Deserializer::ParsePooling2d;
- m_ParserFunctions[Layer_PreluLayer] = &Deserializer::ParsePrelu;
- m_ParserFunctions[Layer_QLstmLayer] = &Deserializer::ParseQLstm;
- m_ParserFunctions[Layer_QuantizeLayer] = &Deserializer::ParseQuantize;
- m_ParserFunctions[Layer_QuantizedLstmLayer] = &Deserializer::ParseQuantizedLstm;
- m_ParserFunctions[Layer_RankLayer] = &Deserializer::ParseRank;
- m_ParserFunctions[Layer_ReshapeLayer] = &Deserializer::ParseReshape;
- m_ParserFunctions[Layer_ResizeBilinearLayer] = &Deserializer::ParseResizeBilinear;
- m_ParserFunctions[Layer_ResizeLayer] = &Deserializer::ParseResize;
- m_ParserFunctions[Layer_RsqrtLayer] = &Deserializer::ParseRsqrt;
- m_ParserFunctions[Layer_SliceLayer] = &Deserializer::ParseSlice;
- m_ParserFunctions[Layer_SoftmaxLayer] = &Deserializer::ParseSoftmax;
- m_ParserFunctions[Layer_SpaceToBatchNdLayer] = &Deserializer::ParseSpaceToBatchNd;
- m_ParserFunctions[Layer_SpaceToDepthLayer] = &Deserializer::ParseSpaceToDepth;
- m_ParserFunctions[Layer_SplitterLayer] = &Deserializer::ParseSplitter;
- m_ParserFunctions[Layer_StackLayer] = &Deserializer::ParseStack;
- m_ParserFunctions[Layer_StandInLayer] = &Deserializer::ParseStandIn;
- m_ParserFunctions[Layer_StridedSliceLayer] = &Deserializer::ParseStridedSlice;
- m_ParserFunctions[Layer_SubtractionLayer] = &Deserializer::ParseSubtraction;
- m_ParserFunctions[Layer_SwitchLayer] = &Deserializer::ParseSwitch;
- m_ParserFunctions[Layer_TransposeConvolution2dLayer] = &Deserializer::ParseTransposeConvolution2d;
- m_ParserFunctions[Layer_TransposeLayer] = &Deserializer::ParseTranspose;
-}
-
-Deserializer::LayerBaseRawPtr Deserializer::GetBaseLayer(const GraphPtr& graphPtr, unsigned int layerIndex)
+ m_ParserFunctions[Layer_AbsLayer] = &DeserializerImpl::ParseAbs;
+ m_ParserFunctions[Layer_ActivationLayer] = &DeserializerImpl::ParseActivation;
+ m_ParserFunctions[Layer_AdditionLayer] = &DeserializerImpl::ParseAdd;
+ m_ParserFunctions[Layer_ArgMinMaxLayer] = &DeserializerImpl::ParseArgMinMax;
+ m_ParserFunctions[Layer_BatchToSpaceNdLayer] = &DeserializerImpl::ParseBatchToSpaceNd;
+ m_ParserFunctions[Layer_BatchNormalizationLayer] = &DeserializerImpl::ParseBatchNormalization;
+ m_ParserFunctions[Layer_ComparisonLayer] = &DeserializerImpl::ParseComparison;
+ m_ParserFunctions[Layer_ConcatLayer] = &DeserializerImpl::ParseConcat;
+ m_ParserFunctions[Layer_ConstantLayer] = &DeserializerImpl::ParseConstant;
+ m_ParserFunctions[Layer_Convolution2dLayer] = &DeserializerImpl::ParseConvolution2d;
+ m_ParserFunctions[Layer_DepthToSpaceLayer] = &DeserializerImpl::ParseDepthToSpace;
+ m_ParserFunctions[Layer_DepthwiseConvolution2dLayer] = &DeserializerImpl::ParseDepthwiseConvolution2d;
+ m_ParserFunctions[Layer_DequantizeLayer] = &DeserializerImpl::ParseDequantize;
+ m_ParserFunctions[Layer_DetectionPostProcessLayer] = &DeserializerImpl::ParseDetectionPostProcess;
+ m_ParserFunctions[Layer_DivisionLayer] = &DeserializerImpl::ParseDivision;
+ m_ParserFunctions[Layer_ElementwiseUnaryLayer] = &DeserializerImpl::ParseElementwiseUnary;
+ m_ParserFunctions[Layer_EqualLayer] = &DeserializerImpl::ParseEqual;
+ m_ParserFunctions[Layer_FullyConnectedLayer] = &DeserializerImpl::ParseFullyConnected;
+ m_ParserFunctions[Layer_FillLayer] = &DeserializerImpl::ParseFill;
+ m_ParserFunctions[Layer_FloorLayer] = &DeserializerImpl::ParseFloor;
+ m_ParserFunctions[Layer_GatherLayer] = &DeserializerImpl::ParseGather;
+ m_ParserFunctions[Layer_GreaterLayer] = &DeserializerImpl::ParseGreater;
+ m_ParserFunctions[Layer_InstanceNormalizationLayer] = &DeserializerImpl::ParseInstanceNormalization;
+ m_ParserFunctions[Layer_L2NormalizationLayer] = &DeserializerImpl::ParseL2Normalization;
+ m_ParserFunctions[Layer_LogicalBinaryLayer] = &DeserializerImpl::ParseLogicalBinary;
+ m_ParserFunctions[Layer_LogSoftmaxLayer] = &DeserializerImpl::ParseLogSoftmax;
+ m_ParserFunctions[Layer_LstmLayer] = &DeserializerImpl::ParseLstm;
+ m_ParserFunctions[Layer_MaximumLayer] = &DeserializerImpl::ParseMaximum;
+ m_ParserFunctions[Layer_MeanLayer] = &DeserializerImpl::ParseMean;
+ m_ParserFunctions[Layer_MinimumLayer] = &DeserializerImpl::ParseMinimum;
+ m_ParserFunctions[Layer_MergeLayer] = &DeserializerImpl::ParseMerge;
+ m_ParserFunctions[Layer_MergerLayer] = &DeserializerImpl::ParseConcat;
+ m_ParserFunctions[Layer_MultiplicationLayer] = &DeserializerImpl::ParseMultiplication;
+ m_ParserFunctions[Layer_NormalizationLayer] = &DeserializerImpl::ParseNormalization;
+ m_ParserFunctions[Layer_PadLayer] = &DeserializerImpl::ParsePad;
+ m_ParserFunctions[Layer_PermuteLayer] = &DeserializerImpl::ParsePermute;
+ m_ParserFunctions[Layer_Pooling2dLayer] = &DeserializerImpl::ParsePooling2d;
+ m_ParserFunctions[Layer_PreluLayer] = &DeserializerImpl::ParsePrelu;
+ m_ParserFunctions[Layer_QLstmLayer] = &DeserializerImpl::ParseQLstm;
+ m_ParserFunctions[Layer_QuantizeLayer] = &DeserializerImpl::ParseQuantize;
+ m_ParserFunctions[Layer_QuantizedLstmLayer] = &DeserializerImpl::ParseQuantizedLstm;
+ m_ParserFunctions[Layer_RankLayer] = &DeserializerImpl::ParseRank;
+ m_ParserFunctions[Layer_ReshapeLayer] = &DeserializerImpl::ParseReshape;
+ m_ParserFunctions[Layer_ResizeBilinearLayer] = &DeserializerImpl::ParseResizeBilinear;
+ m_ParserFunctions[Layer_ResizeLayer] = &DeserializerImpl::ParseResize;
+ m_ParserFunctions[Layer_RsqrtLayer] = &DeserializerImpl::ParseRsqrt;
+ m_ParserFunctions[Layer_SliceLayer] = &DeserializerImpl::ParseSlice;
+ m_ParserFunctions[Layer_SoftmaxLayer] = &DeserializerImpl::ParseSoftmax;
+ m_ParserFunctions[Layer_SpaceToBatchNdLayer] = &DeserializerImpl::ParseSpaceToBatchNd;
+ m_ParserFunctions[Layer_SpaceToDepthLayer] = &DeserializerImpl::ParseSpaceToDepth;
+ m_ParserFunctions[Layer_SplitterLayer] = &DeserializerImpl::ParseSplitter;
+ m_ParserFunctions[Layer_StackLayer] = &DeserializerImpl::ParseStack;
+ m_ParserFunctions[Layer_StandInLayer] = &DeserializerImpl::ParseStandIn;
+ m_ParserFunctions[Layer_StridedSliceLayer] = &DeserializerImpl::ParseStridedSlice;
+ m_ParserFunctions[Layer_SubtractionLayer] = &DeserializerImpl::ParseSubtraction;
+ m_ParserFunctions[Layer_SwitchLayer] = &DeserializerImpl::ParseSwitch;
+ m_ParserFunctions[Layer_TransposeConvolution2dLayer] = &DeserializerImpl::ParseTransposeConvolution2d;
+ m_ParserFunctions[Layer_TransposeLayer] = &DeserializerImpl::ParseTranspose;
+}
+
+LayerBaseRawPtr IDeserializer::DeserializerImpl::GetBaseLayer(const GraphPtr& graphPtr, unsigned int layerIndex)