94 arm_compute::ITensor& input = PolymorphicDowncast<IAclTensorHandle*>(
m_Data.
m_Inputs[0])->GetTensor();
95 arm_compute::ITensor& output = PolymorphicDowncast<IAclTensorHandle*>(
m_Data.
m_Outputs[0])->GetTensor();
96 arm_compute::ITensor& weights = PolymorphicDowncast<IAclTensorHandle*>(
m_Data.
m_Inputs[1])->GetTensor();
97 arm_compute::ITensor* biasesPtr =
nullptr;
100 biasesPtr = &PolymorphicDowncast<IAclTensorHandle *>(
m_Data.
m_Inputs[2])->GetTensor();
103 arm_compute::ITensorInfo* weightsInfo = weights.info();
104 arm_compute::ITensorInfo* inputInfo = input.info();
105 auto weightsShape = weightsInfo->tensor_shape();
106 auto inputShape = inputInfo->tensor_shape();
110 unsigned int depthMultiplier =
113 const arm_compute::Size2D aclDilationInfo = BuildArmComputeSize2D(
120 input.info()->set_data_layout(aclDataLayout);
121 weights.info()->set_data_layout(aclDataLayout);
122 output.info()->set_data_layout(aclDataLayout);
124 arm_compute::PadStrideInfo padStrideInfo = BuildArmComputePadStrideInfo(
m_Data.
m_Parameters);
128 m_pDepthwiseConvolutionLayer = std::make_unique<arm_compute::NEDepthwiseConvolutionLayer>();
129 static_cast<arm_compute::NEDepthwiseConvolutionLayer*
>(
130 m_pDepthwiseConvolutionLayer.get())->configure(&input,
145 if (descriptor.m_Parameters.m_BiasEnabled)
152 descriptor.m_Parameters,
158 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