diff options
Diffstat (limited to 'src/backends/neon/workloads/NeonArgMinMaxWorkload.cpp')
-rw-r--r-- | src/backends/neon/workloads/NeonArgMinMaxWorkload.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/backends/neon/workloads/NeonArgMinMaxWorkload.cpp b/src/backends/neon/workloads/NeonArgMinMaxWorkload.cpp index e8d537f2ef..4b43052365 100644 --- a/src/backends/neon/workloads/NeonArgMinMaxWorkload.cpp +++ b/src/backends/neon/workloads/NeonArgMinMaxWorkload.cpp @@ -59,20 +59,24 @@ NeonArgMinMaxWorkload::NeonArgMinMaxWorkload(const ArgMinMaxQueueDescriptor& des auto unsignedAxis = armnnUtils::GetUnsignedAxis(numDims, m_Data.m_Parameters.m_Axis); int aclAxis = boost::numeric_cast<int>(CalcAclAxis(numDims, unsignedAxis)); + auto layer = std::make_unique<arm_compute::NEArgMinMaxLayer>(); + if (m_Data.m_Parameters.m_Function == ArgMinMaxFunction::Max) { - m_ArgMinMaxLayer.configure(&input, aclAxis, &output, arm_compute::ReductionOperation::ARG_IDX_MAX); + layer->configure(&input, aclAxis, &output, arm_compute::ReductionOperation::ARG_IDX_MAX); } else { - m_ArgMinMaxLayer.configure(&input, aclAxis, &output, arm_compute::ReductionOperation::ARG_IDX_MIN); + layer->configure(&input, aclAxis, &output, arm_compute::ReductionOperation::ARG_IDX_MIN); } + + m_ArgMinMaxLayer.reset(layer.release()); } void NeonArgMinMaxWorkload::Execute() const { ARMNN_SCOPED_PROFILING_EVENT_NEON("NeonArgMinMaxWorkload_Execute"); - m_ArgMinMaxLayer.run(); + m_ArgMinMaxLayer->run(); } } //namespace armnn |