24 #ifndef ARM_COMPUTE_NEDEPTHWISECONVOLUTION_H 25 #define ARM_COMPUTE_NEDEPTHWISECONVOLUTION_H 36 class NEDepthwiseConvolutionLayerNativeKernel;
110 const PadStrideInfo &conv_info,
unsigned int depth_multiplier = 1,
124 class NEDepthwiseConvolutionLayerOptimizedInternal :
public IFunction 128 NEDepthwiseConvolutionLayerOptimizedInternal(std::shared_ptr<IMemoryManager> memory_manager =
nullptr);
130 NEDepthwiseConvolutionLayerOptimizedInternal(
const NEDepthwiseConvolutionLayerOptimizedInternal &) =
delete;
132 NEDepthwiseConvolutionLayerOptimizedInternal(NEDepthwiseConvolutionLayerOptimizedInternal &&) =
default;
134 NEDepthwiseConvolutionLayerOptimizedInternal &
operator=(
const NEDepthwiseConvolutionLayerOptimizedInternal &) =
delete;
136 NEDepthwiseConvolutionLayerOptimizedInternal &
operator=(NEDepthwiseConvolutionLayerOptimizedInternal &&) =
default;
138 ~NEDepthwiseConvolutionLayerOptimizedInternal() =
default;
186 const ITensor *_original_weights;
191 bool _is_activationlayer_enabled;
200 class NEDepthwiseConvolutionLayerGeneric :
public IFunction 204 NEDepthwiseConvolutionLayerGeneric();
206 NEDepthwiseConvolutionLayerGeneric(
const NEDepthwiseConvolutionLayerGeneric &) =
delete;
208 NEDepthwiseConvolutionLayerGeneric(NEDepthwiseConvolutionLayerGeneric &&) =
default;
210 NEDepthwiseConvolutionLayerGeneric &
operator=(
const NEDepthwiseConvolutionLayerGeneric &) =
delete;
212 NEDepthwiseConvolutionLayerGeneric &
operator=(NEDepthwiseConvolutionLayerGeneric &&) =
default;
214 ~NEDepthwiseConvolutionLayerGeneric() =
default;
254 std::unique_ptr<NEDepthwiseConvolutionLayerNativeKernel> _depthwise_conv_kernel;
264 bool _is_activationlayer_enabled;
265 const ITensor *_original_weights;
269 NEDepthwiseConvolutionLayerOptimizedInternal _func_optimized;
270 NEDepthwiseConvolutionLayerGeneric _func_generic;
DepthwiseConvolutionFunction
Available DepthwiseConvolutionFunction.
Base class for all functions.
Store the tensor's metadata.
Basic function to run cpu::kernels::CpuPermuteKernel.
Activation Layer Information class.
Interface for Neon tensor.
Copyright (c) 2017-2021 Arm Limited.
void prepare() override
Prepare the function for executing.
~NEDepthwiseConvolutionLayer()
Default destructor.
static Status validate(const ITensorInfo *input, const ITensorInfo *weights, const ITensorInfo *biases, const ITensorInfo *output, const PadStrideInfo &conv_info, unsigned int depth_multiplier=1, const ActivationLayerInfo &act_info=ActivationLayerInfo(), const Size2D &dilation=Size2D(1U, 1U))
Static function to check if given info will lead to a valid configuration of NEDepthwiseConvolutionLa...
NEDepthwiseConvolutionLayer(std::shared_ptr< IMemoryManager > memory_manager=nullptr)
Default constructor.
Basic implementation of the tensor interface.
Padding and stride information class.
Basic function to run cpu::kernels::CpuActivationKernel.
NEDepthwiseConvolutionLayer & operator=(const NEDepthwiseConvolutionLayer &)=delete
Prevent instances of this class from being copied (As this class contains pointers) ...
Class for specifying the size of an image or rectangle.
Depthwise convolution assembly kernel glue.
Function to execute a depthwise convolution.
void configure(ITensor *input, const ITensor *weights, const ITensor *biases, ITensor *output, const PadStrideInfo &conv_info, unsigned int depth_multiplier=1, const ActivationLayerInfo &act_info=ActivationLayerInfo(), const Size2D &dilation=Size2D(1U, 1U))
Initialize the function's source, destination, weights and convolution information.
void run() override
Run the kernels contained in the function.