19 #include <arm_compute/runtime/CL/functions/CLDeconvolutionLayer.h>
24 using namespace armcomputetensorutils;
32 arm_compute::TensorInfo aclInputInfo = BuildArmComputeTensorInfo(input, descriptor.
m_DataLayout);
33 arm_compute::TensorInfo aclOutputInfo = BuildArmComputeTensorInfo(output, descriptor.
m_DataLayout);
34 arm_compute::TensorInfo aclWeightsInfo = BuildArmComputeTensorInfo(weights, descriptor.
m_DataLayout);
36 arm_compute::TensorInfo aclBiasesInfo;
37 arm_compute::TensorInfo *optionalAclBiasesInfo =
nullptr;
44 "ArmNN ClTransposeConv2dWorkload has empty bias value."};
46 aclBiasesInfo = BuildArmComputeTensorInfo(biases.
value(), descriptor.
m_DataLayout);
47 optionalAclBiasesInfo = &aclBiasesInfo;
50 arm_compute::PadStrideInfo padStrideInfo = BuildArmComputePadStrideInfo(descriptor);
52 return arm_compute::CLDeconvolutionLayer::validate(&aclInputInfo,
54 optionalAclBiasesInfo,
62 std::shared_ptr<arm_compute::MemoryManagerOnDemand>& memoryManager,
63 const arm_compute::CLCompileContext& clCompileContext)
86 m_WeightsTensor = std::make_unique<arm_compute::CLTensor>();
91 m_BiasesTensor = std::make_unique<arm_compute::CLTensor>();
102 input.info()->set_data_layout(aclDataLayout);
103 output.info()->set_data_layout(aclDataLayout);
105 arm_compute::PadStrideInfo padStrideInfo = BuildArmComputePadStrideInfo(
m_Data.
m_Parameters);
108 m_Layer.configure(clCompileContext, &input, m_WeightsTensor.get(), m_BiasesTensor.get(), &output,
129 void ClTransposeConvolution2dWorkload::FreeUnusedTensors()
131 FreeTensorIfUnused(m_WeightsTensor);
132 FreeTensorIfUnused(m_BiasesTensor);