ArmNN
 25.11
Loading...
Searching...
No Matches
RefPadWorkload.cpp
Go to the documentation of this file.
1//
2// Copyright © 2018-2024 Arm Ltd and Contributors. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5
6#include "RefPadWorkload.hpp"
7
8#include "MirrorPad.hpp"
9#include "Pad.hpp"
10#include "Profiling.hpp"
11#include "RefWorkloadUtils.hpp"
12
13namespace armnn
14{
15
17{
18 Execute(m_Data.m_Inputs, m_Data.m_Outputs);
19}
20
21void RefPadWorkload::Execute(std::vector<ITensorHandle*> inputs, std::vector<ITensorHandle*> outputs) const
22{
23 ARMNN_SCOPED_PROFILING_EVENT_REF_NAME_GUID("RefPadWorkload_Execute");
24
25 const TensorInfo& inputInfo = GetTensorInfo(inputs[0]);
26 const TensorInfo& outputInfo = GetTensorInfo(outputs[0]);
27
29 if (paddingMode == PaddingMode::Constant)
30 {
31 armnn::Pad(inputInfo, outputInfo, inputs[0], outputs[0], m_Data);
32 }
33 else if(paddingMode == PaddingMode::Reflect || paddingMode == PaddingMode::Symmetric)
34 {
35 armnn::MirrorPad(inputInfo, outputInfo, inputs[0], outputs[0], m_Data);
36 }
37 else
38 {
39 throw InvalidArgumentException("Padding mode not supported.");
40 }
41}
42
43} //namespace armnn
#define ARMNN_SCOPED_PROFILING_EVENT_REF_NAME_GUID(label)
Creates a profiling event that uses GetGuid() and GetName() from the calling class.
void Execute() const override
Copyright (c) 2021 ARM Limited and Contributors.
PaddingMode
The padding mode controls whether the padding should be filled with constant values (Constant),...
Definition Types.hpp:202
void MirrorPad(const TensorInfo &inputInfo, const TensorInfo &outputInfo, const ITensorHandle *inputHandle, ITensorHandle *outputHandle, const PadQueueDescriptor &data)
Definition MirrorPad.cpp:59
armnn::TensorInfo GetTensorInfo(unsigned int numberOfBatches, unsigned int numberOfChannels, unsigned int height, unsigned int width, const armnn::DataLayout dataLayout, const armnn::DataType dataType)
PaddingMode m_PaddingMode
Specifies the Padding mode (Constant, Reflect or Symmetric)