42 struct NEEltwiseLayerFunctions
44 using ArithmeticAddition = NEArithmeticAddition;
45 using ArithmeticSubtraction = NEArithmeticSubtraction;
46 using PixelWiseMultiplication = NEPixelWiseMultiplication;
47 using ElementwiseMax = NEElementwiseMax;
48 using ArithmeticDivision = NEElementwiseDivision;
52 struct NEUnaryEltwiseLayerFunctions
67 case NodeType::ArgMinMaxLayer:
68 return detail::validate_arg_min_max_layer<NEArgMinMaxLayer>(*polymorphic_downcast<ArgMinMaxLayerNode *>(node));
69 case NodeType::BoundingBoxTransformLayer:
71 case NodeType::ChannelShuffleLayer:
72 return detail::validate_channel_shuffle_layer<NEChannelShuffleLayer>(*polymorphic_downcast<ChannelShuffleLayerNode *>(node));
73 case NodeType::ConvolutionLayer:
78 case NodeType::DepthToSpaceLayer:
79 return detail::validate_depth_to_space_layer<NEDepthToSpaceLayer>(*polymorphic_downcast<DepthToSpaceLayerNode *>(node));
80 case NodeType::DepthwiseConvolutionLayer:
81 return detail::validate_depthwise_convolution_layer<NEDepthwiseConvolutionLayer>(*polymorphic_downcast<DepthwiseConvolutionLayerNode *>(node));
82 case NodeType::DequantizationLayer:
83 return detail::validate_dequantization_layer<NEDequantizationLayer>(*polymorphic_downcast<DequantizationLayerNode *>(node));
84 case NodeType::DetectionOutputLayer:
85 return detail::validate_detection_output_layer<CPPDetectionOutputLayer>(*polymorphic_downcast<DetectionOutputLayerNode *>(node));
86 case NodeType::DetectionPostProcessLayer:
87 return detail::validate_detection_post_process_layer<NEDetectionPostProcessLayer>(*polymorphic_downcast<DetectionPostProcessLayerNode *>(node));
88 case NodeType::GenerateProposalsLayer:
90 case NodeType::L2NormalizeLayer:
91 return detail::validate_l2_normalize_layer<NEL2NormalizeLayer>(*polymorphic_downcast<L2NormalizeLayerNode *>(node));
92 case NodeType::NormalizePlanarYUVLayer:
94 case NodeType::PadLayer:
95 return detail::validate_pad_layer<NEPadLayer>(*polymorphic_downcast<PadLayerNode *>(node));
96 case NodeType::PermuteLayer:
97 return detail::validate_permute_layer<NEPermute>(*polymorphic_downcast<PermuteLayerNode *>(node));
98 case NodeType::PReluLayer:
99 return detail::validate_prelu_layer<NEPReluLayer>(*polymorphic_downcast<PReluLayerNode *>(node));
100 case NodeType::PriorBoxLayer:
101 return detail::validate_priorbox_layer<NEPriorBoxLayer>(*polymorphic_downcast<PriorBoxLayerNode *>(node));
102 case NodeType::QuantizationLayer:
103 return detail::validate_quantization_layer<NEQuantizationLayer>(*polymorphic_downcast<QuantizationLayerNode *>(node));
104 case NodeType::ReductionOperationLayer:
105 return detail::validate_reduction_operation_layer<NEReductionOperation>(*polymorphic_downcast<ReductionLayerNode *>(node));
106 case NodeType::ReorgLayer:
107 return detail::validate_reorg_layer<NEReorgLayer>(*polymorphic_downcast<ReorgLayerNode *>(node));
108 case NodeType::ReshapeLayer:
109 return detail::validate_reshape_layer<NEReshapeLayer>(*polymorphic_downcast<ReshapeLayerNode *>(node));
110 case NodeType::ROIAlignLayer:
112 case NodeType::SliceLayer:
113 return detail::validate_slice_layer<NESlice>(*polymorphic_downcast<SliceLayerNode *>(node));
114 case NodeType::StridedSliceLayer:
115 return detail::validate_strided_slice_layer<NEStridedSlice>(*polymorphic_downcast<StridedSliceLayerNode *>(node));
116 case NodeType::EltwiseLayer:
117 return detail::validate_eltwise_Layer<NEEltwiseLayerFunctions>(*polymorphic_downcast<EltwiseLayerNode *>(node));
118 case NodeType::UnaryEltwiseLayer:
119 return detail::validate_unary_eltwise_layer<NEUnaryEltwiseLayerFunctions>(*polymorphic_downcast<UnaryEltwiseLayerNode *>(node));
NEElementwiseUnaryLayer< ElementWiseUnary::EXP > NEExpLayer
decltype(strategy::transforms) typedef type
Basic function to compute the convolution layer.
Includes all the Arm® Neon™ functions at once.
Copyright (c) 2017-2021 Arm Limited.
Basic function to simulate a convolution layer.
Basic function to simulate a convolution layer.
Function to run the direct convolution.
#define ARM_COMPUTE_CREATE_ERROR(error_code, msg)
Creates an error with a given message.
Status validate_convolution_layer(ConvolutionLayerNode &node)
Validates a Convolution layer node.
virtual NodeType type() const =0
Returns node's type.
Status validate(const ITensorInfo *scores_in, const ITensorInfo *boxes_in, const ITensorInfo *batch_splits_in, const ITensorInfo *scores_out, const ITensorInfo *boxes_out, const ITensorInfo *classes, const ITensorInfo *batch_splits_out, const ITensorInfo *keeps, const ITensorInfo *keeps_size, const BoxNMSLimitInfo info)