Create a backend execution function depending on the node type.
129 return detail::create_activation_layer<NEActivationLayer, NETargetInfo>(
130 *polymorphic_downcast<ActivationLayerNode *>(node));
132 return detail::create_arg_min_max_layer<NEArgMinMaxLayer, NETargetInfo>(
133 *polymorphic_downcast<ArgMinMaxLayerNode *>(node));
135 return detail::create_batch_normalization_layer<NEBatchNormalizationLayer, NETargetInfo>(
136 *polymorphic_downcast<BatchNormalizationLayerNode *>(node));
138 return detail::create_channel_shuffle_layer<NEChannelShuffleLayer, NETargetInfo>(
139 *polymorphic_downcast<ChannelShuffleLayerNode *>(node));
141 return detail::create_convolution_layer<NEConvolutionLayerFunctions, NETargetInfo>(
142 *polymorphic_downcast<ConvolutionLayerNode *>(node), ctx);
144 return detail::create_depth_to_space_layer<NEDepthToSpaceLayer, NETargetInfo>(
145 *polymorphic_downcast<DepthToSpaceLayerNode *>(node));
147 return detail::create_deconvolution_layer<NEDeconvolutionLayer, NETargetInfo>(
148 *polymorphic_downcast<DeconvolutionLayerNode *>(node), ctx);
150 return detail::create_concatenate_layer<NEConcatenateLayer, NETargetInfo>(
151 *polymorphic_downcast<ConcatenateLayerNode *>(node));
153 return detail::create_depthwise_convolution_layer<NEDepthwiseConvolutionLayer, NETargetInfo>(
154 *polymorphic_downcast<DepthwiseConvolutionLayerNode *>(node));
156 return detail::create_dequantization_layer<NEDequantizationLayer, NETargetInfo>(
157 *polymorphic_downcast<DequantizationLayerNode *>(node));
159 return detail::create_detection_output_layer<CPPDetectionOutputLayer, NETargetInfo>(
160 *polymorphic_downcast<DetectionOutputLayerNode *>(node));
162 return detail::create_detection_post_process_layer<NEDetectionPostProcessLayer, NETargetInfo>(
163 *polymorphic_downcast<DetectionPostProcessLayerNode *>(node));
165 return detail::create_eltwise_layer<NEEltwiseFunctions, NETargetInfo>(
166 *polymorphic_downcast<EltwiseLayerNode *>(node));
168 return detail::create_unary_eltwise_layer<NEUnaryEltwiseFunctions, NETargetInfo>(
169 *polymorphic_downcast<UnaryEltwiseLayerNode *>(node));
171 return detail::create_flatten_layer<NEFlattenLayer, NETargetInfo>(
172 *polymorphic_downcast<FlattenLayerNode *>(node));
174 return detail::create_fully_connected_layer<NEFullyConnectedLayer, NETargetInfo>(
175 *polymorphic_downcast<FullyConnectedLayerNode *>(node), ctx);
177 return detail::create_fused_convolution_batch_normalization_layer<NEFusedLayerTypes, NETargetInfo>(
178 *polymorphic_downcast<FusedConvolutionBatchNormalizationNode *>(node), ctx);
182 *polymorphic_downcast<FusedDepthwiseConvolutionBatchNormalizationNode *>(node), ctx);
184 return detail::create_l2_normalize_layer<NEL2NormalizeLayer, NETargetInfo>(
185 *polymorphic_downcast<L2NormalizeLayerNode *>(node), ctx);
188 *polymorphic_downcast<NormalizationLayerNode *>(node), ctx);
190 return detail::create_pad_layer<NEPadLayer, NETargetInfo>(*polymorphic_downcast<PadLayerNode *>(node));
192 return detail::create_permute_layer<NEPermute, NETargetInfo>(
193 *polymorphic_downcast<PermuteLayerNode *>(node));
195 return detail::create_pooling_layer<NEPoolingLayer, NETargetInfo>(
196 *polymorphic_downcast<PoolingLayerNode *>(node));
198 return detail::create_prelu_layer<NEPReluLayer, NETargetInfo>(
199 *polymorphic_downcast<PReluLayerNode *>(node));
201 return detail::create_print_layer<NETargetInfo>(*polymorphic_downcast<PrintLayerNode *>(node));
203 return detail::create_priorbox_layer<NEPriorBoxLayer, NETargetInfo>(
204 *polymorphic_downcast<PriorBoxLayerNode *>(node));
206 return detail::create_quantization_layer<NEQuantizationLayer, NETargetInfo>(
207 *polymorphic_downcast<QuantizationLayerNode *>(node));
209 return detail::create_reduction_operation_layer<NEReductionOperation, NETargetInfo>(
210 *polymorphic_downcast<ReductionLayerNode *>(node), ctx);
212 return detail::create_reorg_layer<NEReorgLayer, NETargetInfo>(
213 *polymorphic_downcast<ReorgLayerNode *>(node));
215 return detail::create_reshape_layer<NEReshapeLayer, NETargetInfo>(
216 *polymorphic_downcast<ReshapeLayerNode *>(node));
218 return detail::create_resize_layer<NEScale, NETargetInfo>(*polymorphic_downcast<ResizeLayerNode *>(node));
220 return detail::create_slice_layer<NESlice, NETargetInfo>(*polymorphic_downcast<SliceLayerNode *>(node));
222 return detail::create_softmax_layer<NESoftmaxLayer, NETargetInfo>(
223 *polymorphic_downcast<SoftmaxLayerNode *>(node), ctx);
225 return detail::create_stack_layer<NEStackLayer, NETargetInfo>(
226 *polymorphic_downcast<StackLayerNode *>(node));
228 return detail::create_strided_slice_layer<NEStridedSlice, NETargetInfo>(
229 *polymorphic_downcast<StridedSliceLayerNode *>(node));