diff options
author | Jim Flynn <jim.flynn@arm.com> | 2020-03-19 17:03:14 +0000 |
---|---|---|
committer | Jim Flynn <jim.flynn@arm.com> | 2020-03-19 17:03:14 +0000 |
commit | 0e2bab81442ee6cc2b94e4f7881ed0c5c6af65e7 (patch) | |
tree | b0af08b5a0b74149fca422151127ac6310385399 /src/backends/neon/workloads/NeonDetectionPostProcessWorkload.cpp | |
parent | 8c3259fa007d43fcc5ea56fe6928526dbe79f3c0 (diff) | |
download | armnn-0e2bab81442ee6cc2b94e4f7881ed0c5c6af65e7.tar.gz |
Creating gh-pages documentation for ArmNN
Signed-off-by: Jim Flynn <jim.flynn@arm.com>
Diffstat (limited to 'src/backends/neon/workloads/NeonDetectionPostProcessWorkload.cpp')
-rw-r--r-- | src/backends/neon/workloads/NeonDetectionPostProcessWorkload.cpp | 112 |
1 files changed, 0 insertions, 112 deletions
diff --git a/src/backends/neon/workloads/NeonDetectionPostProcessWorkload.cpp b/src/backends/neon/workloads/NeonDetectionPostProcessWorkload.cpp deleted file mode 100644 index 2ed47e4463..0000000000 --- a/src/backends/neon/workloads/NeonDetectionPostProcessWorkload.cpp +++ /dev/null @@ -1,112 +0,0 @@ -// -// Copyright © 2019 Arm Ltd. All rights reserved. -// SPDX-License-Identifier: MIT -// - -#include "NeonDetectionPostProcessWorkload.hpp" - -#include "NeonWorkloadUtils.hpp" - -#include <aclCommon/ArmComputeTensorHandle.hpp> -#include <aclCommon/ArmComputeTensorUtils.hpp> - -#include <boost/cast.hpp> - -namespace armnn -{ - -arm_compute::DetectionPostProcessLayerInfo MakeInfo(const DetectionPostProcessDescriptor& desc) -{ - return arm_compute::DetectionPostProcessLayerInfo(desc.m_MaxDetections, - desc.m_MaxClassesPerDetection, - desc.m_NmsScoreThreshold, - desc.m_NmsIouThreshold, - desc.m_NumClasses, - { desc.m_ScaleX, - desc.m_ScaleY, - desc.m_ScaleW, - desc.m_ScaleH }, - desc.m_UseRegularNms, - desc.m_DetectionsPerClass); -} - -arm_compute::Status NeonDetectionPostProcessValidate(const TensorInfo& boxEncodings, - const TensorInfo& scores, - const TensorInfo& anchors, - const TensorInfo& detectionBoxes, - const TensorInfo& detectionClasses, - const TensorInfo& detectionScores, - const TensorInfo& numDetections, - const DetectionPostProcessDescriptor &desc) -{ - arm_compute::DetectionPostProcessLayerInfo info = MakeInfo(desc); - - const arm_compute::TensorInfo aclBoxEncodings = - armcomputetensorutils::BuildArmComputeTensorInfo(boxEncodings); - - const arm_compute::TensorInfo aclScores = - armcomputetensorutils::BuildArmComputeTensorInfo(scores); - - const arm_compute::TensorInfo aclAnchors = - armcomputetensorutils::BuildArmComputeTensorInfo(anchors); - - arm_compute::TensorInfo aclDetectionBoxes = - armcomputetensorutils::BuildArmComputeTensorInfo(detectionBoxes); - - arm_compute::TensorInfo aclDetectionClasses = - armcomputetensorutils::BuildArmComputeTensorInfo(detectionClasses); - - arm_compute::TensorInfo aclDetectionScores = - armcomputetensorutils::BuildArmComputeTensorInfo(detectionScores); - - arm_compute::TensorInfo aclNumDetections = - armcomputetensorutils::BuildArmComputeTensorInfo(numDetections); - - return arm_compute::NEDetectionPostProcessLayer::validate( - &aclBoxEncodings, - &aclScores, - &aclAnchors, - &aclDetectionBoxes, - &aclDetectionClasses, - &aclDetectionScores, - &aclNumDetections, - info); -} - -NeonDetectionPostProcessWorkload::NeonDetectionPostProcessWorkload( - const DetectionPostProcessQueueDescriptor& descriptor, - const WorkloadInfo& info) - : BaseWorkload<DetectionPostProcessQueueDescriptor>(descriptor, info) -{ - m_Anchors = std::make_unique<arm_compute::Tensor>(); - BuildArmComputeTensor(*m_Anchors, descriptor.m_Anchors->GetTensorInfo()); - - arm_compute::DetectionPostProcessLayerInfo di = MakeInfo(m_Data.m_Parameters); - - auto AclTensorRef = [](ITensorHandle* tensor) -> arm_compute::ITensor& - { - return boost::polymorphic_downcast<IAclTensorHandle*>(tensor)->GetTensor(); - }; - - arm_compute::ITensor& boxEncodings = AclTensorRef(m_Data.m_Inputs[0]); - arm_compute::ITensor& scores = AclTensorRef(m_Data.m_Inputs[1]); - - arm_compute::ITensor& detectionBoxes = AclTensorRef(m_Data.m_Outputs[0]); - arm_compute::ITensor& detectionClasses = AclTensorRef(m_Data.m_Outputs[1]); - arm_compute::ITensor& detectionScores = AclTensorRef(m_Data.m_Outputs[2]); - arm_compute::ITensor& numDetections = AclTensorRef(m_Data.m_Outputs[3]); - - m_Func.configure(&boxEncodings, &scores, m_Anchors.get(), - &detectionBoxes, &detectionClasses, &detectionScores, &numDetections, - di); - - InitializeArmComputeTensorData(*m_Anchors, m_Data.m_Anchors); -} - -void NeonDetectionPostProcessWorkload::Execute() const -{ - ARMNN_SCOPED_PROFILING_EVENT_NEON("NeonDetectionPostProcessWorkload_Execute"); - m_Func.run(); -} - -} // namespace armnn |