aboutsummaryrefslogtreecommitdiff
path: root/src/backends/neon/workloads/NeonDetectionPostProcessWorkload.cpp
diff options
context:
space:
mode:
authorJim Flynn <jim.flynn@arm.com>2020-03-19 17:03:14 +0000
committerJim Flynn <jim.flynn@arm.com>2020-03-19 17:03:14 +0000
commit0e2bab81442ee6cc2b94e4f7881ed0c5c6af65e7 (patch)
treeb0af08b5a0b74149fca422151127ac6310385399 /src/backends/neon/workloads/NeonDetectionPostProcessWorkload.cpp
parent8c3259fa007d43fcc5ea56fe6928526dbe79f3c0 (diff)
downloadarmnn-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.cpp112
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