103 arm_compute::ITensor& input = PolymorphicDowncast<IAclTensorHandle*>(
m_Data.
m_Inputs[0])->GetTensor();
104 arm_compute::ITensor& output = PolymorphicDowncast<IAclTensorHandle*>(
m_Data.
m_Outputs[0])->GetTensor();
105 arm_compute::ITensor& weights = PolymorphicDowncast<IAclTensorHandle*>(
m_Data.
m_Inputs[1])->GetTensor();
106 arm_compute::ITensor* biasesPtr =
nullptr;
109 biasesPtr = &PolymorphicDowncast<IAclTensorHandle *>(
m_Data.
m_Inputs[2])->GetTensor();
112 arm_compute::ITensorInfo* weightsInfo = weights.info();
113 arm_compute::ITensorInfo* inputInfo = input.info();
114 auto weightsShape = weightsInfo->tensor_shape();
115 auto inputShape = inputInfo->tensor_shape();
119 unsigned int depthMultiplier =
122 const arm_compute::Size2D aclDilationInfo = BuildArmComputeSize2D(
129 input.info()->set_data_layout(aclDataLayout);
130 weights.info()->set_data_layout(aclDataLayout);
131 output.info()->set_data_layout(aclDataLayout);
133 arm_compute::PadStrideInfo padStrideInfo = BuildArmComputePadStrideInfo(
m_Data.
m_Parameters);
137 m_pDepthwiseConvolutionLayer = std::make_unique<arm_compute::NEDepthwiseConvolutionLayer>();
138 static_cast<arm_compute::NEDepthwiseConvolutionLayer*
>(
139 m_pDepthwiseConvolutionLayer.get())->configure(&input,
154 if (descriptor.m_Parameters.m_BiasEnabled)
161 descriptor.m_Parameters,
167 m_pDepthwiseConvolutionLayer->prepare();
bool m_BiasEnabled
Enable/disable bias.
DataLayout m_DataLayout
The data layout to be used (NCHW, NHWC).
arm_compute::ActivationLayerInfo ConvertAdditionalInfoToAclActivationLayerInfo(const QueueDescriptor &queueDescriptor)
arm::pipe::ProfilingGuid GetGuid() const final
void ValidateInputsOutputs(const std::string &descName, unsigned int numExpectedIn, unsigned int numExpectedOut) const
LayerDescriptor m_Parameters
uint32_t m_DilationY
Dilation factor value for height dimension.
std::vector< TensorInfo > m_InputTensorInfos
uint32_t m_DilationX
Dilation factor value for width dimension.
DepthwiseConvolution2dQueueDescriptor m_Data
#define ARMNN_ASSERT(COND)
std::vector< TensorInfo > m_OutputTensorInfos
Optional< TensorInfo > m_BiasTensorInfo
std::vector< ITensorHandle * > m_Outputs
#define ARMNN_REPORT_PROFILING_WORKLOAD_DESC(name, desc, infos, guid)
Contains information about TensorInfos of a layer.
std::vector< ITensorHandle * > m_Inputs
Optional< TensorInfo > m_WeightsTensorInfo