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;
43 aclBiasesInfo = BuildArmComputeTensorInfo(biases.
value(), descriptor.
m_DataLayout);
44 optionalAclBiasesInfo = &aclBiasesInfo;
47 arm_compute::PadStrideInfo padStrideInfo = BuildArmComputePadStrideInfo(descriptor);
49 return arm_compute::CLDeconvolutionLayer::validate(&aclInputInfo,
51 optionalAclBiasesInfo,
59 std::shared_ptr<arm_compute::MemoryManagerOnDemand>& memoryManager,
60 const arm_compute::CLCompileContext& clCompileContext)
83 m_WeightsTensor = std::make_unique<arm_compute::CLTensor>();
88 m_BiasesTensor = std::make_unique<arm_compute::CLTensor>();
99 input.info()->set_data_layout(aclDataLayout);
100 output.info()->set_data_layout(aclDataLayout);
102 arm_compute::PadStrideInfo padStrideInfo = BuildArmComputePadStrideInfo(
m_Data.
m_Parameters);
105 m_Layer.configure(clCompileContext, &input, m_WeightsTensor.get(), m_BiasesTensor.get(), &output,
126 void ClTransposeConvolution2dWorkload::FreeUnusedTensors()
128 FreeTensorIfUnused(m_WeightsTensor);
129 FreeTensorIfUnused(m_BiasesTensor);