43 struct CLEltwiseLayerFunctions
45 using ArithmeticAddition = CLArithmeticAddition;
46 using ArithmeticSubtraction = CLArithmeticSubtraction;
47 using PixelWiseMultiplication = CLPixelWiseMultiplication;
48 using ElementwiseMax = CLElementwiseMax;
49 using ArithmeticDivision = CLArithmeticDivision;
53 struct CLUnaryEltwiseLayerFunctions
55 using ExpLayer = CLExpLayer;
68 case NodeType::ArgMinMaxLayer:
69 return detail::validate_arg_min_max_layer<CLArgMinMaxLayer>(*polymorphic_downcast<ArgMinMaxLayerNode *>(node));
70 case NodeType::BoundingBoxTransformLayer:
71 return detail::validate_bounding_box_transform_layer<CLBoundingBoxTransform>(*polymorphic_downcast<BoundingBoxTransformLayerNode *>(node));
72 case NodeType::ChannelShuffleLayer:
73 return detail::validate_channel_shuffle_layer<CLChannelShuffleLayer>(*polymorphic_downcast<ChannelShuffleLayerNode *>(node));
74 case NodeType::ConvolutionLayer:
79 case NodeType::FusedConvolutionWithPostOp:
80 return detail::validate_fused_convolution_with_post_op<CLGEMMConvolutionLayer>(*polymorphic_downcast<FusedConvolutionWithPostOpNode *>(node));
81 case NodeType::DepthToSpaceLayer:
82 return detail::validate_depth_to_space_layer<CLDepthToSpaceLayer>(*polymorphic_downcast<DepthToSpaceLayerNode *>(node));
83 case NodeType::DepthwiseConvolutionLayer:
84 return detail::validate_depthwise_convolution_layer<CLDepthwiseConvolutionLayer>(*polymorphic_downcast<DepthwiseConvolutionLayerNode *>(node));
85 case NodeType::DequantizationLayer:
86 return detail::validate_dequantization_layer<CLDequantizationLayer>(*polymorphic_downcast<DequantizationLayerNode *>(node));
87 case NodeType::DetectionOutputLayer:
88 return detail::validate_detection_output_layer<CPPDetectionOutputLayer>(*polymorphic_downcast<DetectionOutputLayerNode *>(node));
89 case NodeType::DetectionPostProcessLayer:
90 return detail::validate_detection_post_process_layer<CPPDetectionPostProcessLayer>(*polymorphic_downcast<DetectionPostProcessLayerNode *>(node));
91 case NodeType::GenerateProposalsLayer:
92 return detail::validate_generate_proposals_layer<CLGenerateProposalsLayer>(*polymorphic_downcast<GenerateProposalsLayerNode *>(node));
93 case NodeType::L2NormalizeLayer:
94 return detail::validate_l2_normalize_layer<CLL2NormalizeLayer>(*polymorphic_downcast<L2NormalizeLayerNode *>(node));
95 case NodeType::NormalizePlanarYUVLayer:
96 return detail::validate_normalize_planar_yuv_layer<CLNormalizePlanarYUVLayer>(*polymorphic_downcast<NormalizePlanarYUVLayerNode *>(node));
97 case NodeType::PadLayer:
98 return detail::validate_pad_layer<CLPadLayer>(*polymorphic_downcast<PadLayerNode *>(node));
99 case NodeType::PermuteLayer:
100 return detail::validate_permute_layer<CLPermute>(*polymorphic_downcast<PermuteLayerNode *>(node));
101 case NodeType::PReluLayer:
102 return detail::validate_prelu_layer<CLPReluLayer>(*polymorphic_downcast<PReluLayerNode *>(node));
103 case NodeType::PriorBoxLayer:
104 return detail::validate_priorbox_layer<CLPriorBoxLayer>(*polymorphic_downcast<PriorBoxLayerNode *>(node));
105 case NodeType::QuantizationLayer:
106 return detail::validate_quantization_layer<CLQuantizationLayer>(*polymorphic_downcast<QuantizationLayerNode *>(node));
107 case NodeType::ReductionOperationLayer:
108 return detail::validate_reduction_operation_layer<CLReductionOperation>(*polymorphic_downcast<ReductionLayerNode *>(node));
109 case NodeType::ReorgLayer:
110 return detail::validate_reorg_layer<CLReorgLayer>(*polymorphic_downcast<ReorgLayerNode *>(node));
111 case NodeType::ReshapeLayer:
112 return detail::validate_reshape_layer<CLReshapeLayer>(*polymorphic_downcast<ReshapeLayerNode *>(node));
113 case NodeType::ROIAlignLayer:
114 return detail::validate_roi_align_layer<CLROIAlignLayer>(*polymorphic_downcast<ROIAlignLayerNode *>(node));
115 case NodeType::SliceLayer:
116 return detail::validate_slice_layer<CLSlice>(*polymorphic_downcast<SliceLayerNode *>(node));
117 case NodeType::StridedSliceLayer:
118 return detail::validate_strided_slice_layer<CLStridedSlice>(*polymorphic_downcast<StridedSliceLayerNode *>(node));
119 case NodeType::EltwiseLayer:
120 return detail::validate_eltwise_Layer<CLEltwiseLayerFunctions>(*polymorphic_downcast<EltwiseLayerNode *>(node));
121 case NodeType::UnaryEltwiseLayer:
122 return detail::validate_unary_eltwise_layer<CLUnaryEltwiseLayerFunctions>(*polymorphic_downcast<UnaryEltwiseLayerNode *>(node));