Create a backend execution function depending on the node type.
235 return detail::create_activation_layer<CLActivationLayer, CLTargetInfo>(
236 *polymorphic_downcast<ActivationLayerNode *>(node));
238 return detail::create_arg_min_max_layer<CLArgMinMaxLayer, CLTargetInfo>(
239 *polymorphic_downcast<ArgMinMaxLayerNode *>(node));
241 return detail::create_batch_normalization_layer<CLBatchNormalizationLayer, CLTargetInfo>(
242 *polymorphic_downcast<BatchNormalizationLayerNode *>(node));
244 return detail::create_bounding_box_transform_layer<CLBoundingBoxTransform, CLTargetInfo>(
245 *polymorphic_downcast<BoundingBoxTransformLayerNode *>(node));
247 return detail::create_channel_shuffle_layer<CLChannelShuffleLayer, CLTargetInfo>(
248 *polymorphic_downcast<ChannelShuffleLayerNode *>(node));
250 return detail::create_convolution_layer<CLConvolutionLayerFunctions, CLTargetInfo>(
251 *polymorphic_downcast<ConvolutionLayerNode *>(node), ctx);
253 return detail::create_deconvolution_layer<CLDeconvolutionLayer, CLTargetInfo>(
254 *polymorphic_downcast<DeconvolutionLayerNode *>(node), ctx);
256 return detail::create_concatenate_layer<CLConcatenateLayer, CLTargetInfo>(
257 *polymorphic_downcast<ConcatenateLayerNode *>(node));
259 return detail::create_depth_to_space_layer<CLDepthToSpaceLayer, CLTargetInfo>(
260 *polymorphic_downcast<DepthToSpaceLayerNode *>(node));
262 return detail::create_depthwise_convolution_layer<CLDepthwiseConvolutionLayer, CLTargetInfo>(
263 *polymorphic_downcast<DepthwiseConvolutionLayerNode *>(node));
265 return detail::create_dequantization_layer<CLDequantizationLayer, CLTargetInfo>(
266 *polymorphic_downcast<DequantizationLayerNode *>(node));
269 *polymorphic_downcast<DetectionOutputLayerNode *>(node));
272 *polymorphic_downcast<DetectionPostProcessLayerNode *>(node));
274 return detail::create_eltwise_layer<CLEltwiseFunctions, CLTargetInfo>(
275 *polymorphic_downcast<EltwiseLayerNode *>(node));
277 return detail::create_unary_eltwise_layer<CLUnaryEltwiseFunctions, CLTargetInfo>(
278 *polymorphic_downcast<UnaryEltwiseLayerNode *>(node));
280 return detail::create_flatten_layer<CLFlattenLayer, CLTargetInfo>(
281 *polymorphic_downcast<FlattenLayerNode *>(node));
283 return detail::create_fully_connected_layer<CLFullyConnectedLayer, CLTargetInfo>(
284 *polymorphic_downcast<FullyConnectedLayerNode *>(node), ctx);
286 return detail::create_fused_convolution_batch_normalization_layer<CLFusedLayerTypes, CLTargetInfo>(
287 *polymorphic_downcast<FusedConvolutionBatchNormalizationNode *>(node), ctx);
291 *polymorphic_downcast<FusedDepthwiseConvolutionBatchNormalizationNode *>(node), ctx);
293 return detail::create_generate_proposals_layer<CLGenerateProposalsLayer, CLTargetInfo>(
294 *polymorphic_downcast<GenerateProposalsLayerNode *>(node), ctx);
296 return detail::create_l2_normalize_layer<CLL2NormalizeLayer, CLTargetInfo>(
297 *polymorphic_downcast<L2NormalizeLayerNode *>(node), ctx);
299 return detail::create_normalization_layer<CLNormalizationLayer, CLTargetInfo>(
300 *polymorphic_downcast<NormalizationLayerNode *>(node), ctx);
302 return detail::create_normalize_planar_yuv_layer<CLNormalizePlanarYUVLayer, CLTargetInfo>(
303 *polymorphic_downcast<NormalizePlanarYUVLayerNode *>(node));
305 return detail::create_pad_layer<CLPadLayer, CLTargetInfo>(*polymorphic_downcast<PadLayerNode *>(node));
307 return detail::create_permute_layer<CLPermute, CLTargetInfo>(
308 *polymorphic_downcast<PermuteLayerNode *>(node));
310 return detail::create_pooling_layer<CLPoolingLayer, CLTargetInfo>(
311 *polymorphic_downcast<PoolingLayerNode *>(node));
313 return detail::create_prelu_layer<CLPReluLayer, CLTargetInfo>(
314 *polymorphic_downcast<PReluLayerNode *>(node));
316 return detail::create_print_layer<CLTargetInfo>(*polymorphic_downcast<PrintLayerNode *>(node));
318 return detail::create_priorbox_layer<CLPriorBoxLayer, CLTargetInfo>(
319 *polymorphic_downcast<PriorBoxLayerNode *>(node));
321 return detail::create_quantization_layer<CLQuantizationLayer, CLTargetInfo>(
322 *polymorphic_downcast<QuantizationLayerNode *>(node));
324 return detail::create_reduction_operation_layer<CLReductionOperation, CLTargetInfo>(
325 *polymorphic_downcast<ReductionLayerNode *>(node), ctx);
327 return detail::create_reorg_layer<CLReorgLayer, CLTargetInfo>(
328 *polymorphic_downcast<ReorgLayerNode *>(node));
330 return detail::create_reshape_layer<CLReshapeLayer, CLTargetInfo>(
331 *polymorphic_downcast<ReshapeLayerNode *>(node));
333 return detail::create_resize_layer<CLScale, CLTargetInfo>(*polymorphic_downcast<ResizeLayerNode *>(node));
335 return detail::create_roi_align_layer<CLROIAlignLayer, CLTargetInfo>(
336 *polymorphic_downcast<ROIAlignLayerNode *>(node));
338 return detail::create_slice_layer<CLSlice, CLTargetInfo>(*polymorphic_downcast<SliceLayerNode *>(node));
340 return detail::create_softmax_layer<CLSoftmaxLayer, CLTargetInfo>(
341 *polymorphic_downcast<SoftmaxLayerNode *>(node), ctx);
343 return detail::create_stack_layer<CLStackLayer, CLTargetInfo>(
344 *polymorphic_downcast<StackLayerNode *>(node));
346 return detail::create_strided_slice_layer<CLStridedSlice, CLTargetInfo>(
347 *polymorphic_downcast<StridedSliceLayerNode *>(node));