blob: 4fcbc77c7b972bb8b0dde27c3f9857c5366061d4 [file] [log] [blame]
Mohamed Nour Abouelseoud5662c202018-09-24 13:30:09 +01001//
Finn Williams87d0bda2020-07-03 10:12:03 +01002// Copyright © 2017 Arm Ltd and Contributors. All rights reserved.
Mohamed Nour Abouelseoud5662c202018-09-24 13:30:09 +01003// SPDX-License-Identifier: MIT
4//
5
6#include "PadLayer.hpp"
7#include "LayerCloneBase.hpp"
8
Aron Virginas-Tarc9cc8042018-11-01 16:15:57 +00009#include <backendsCommon/CpuTensorHandle.hpp>
10#include <backendsCommon/WorkloadData.hpp>
11#include <backendsCommon/WorkloadFactory.hpp>
Mohamed Nour Abouelseoud5662c202018-09-24 13:30:09 +010012
13#include <cstring>
14
15namespace armnn
16{
17
18PadLayer::PadLayer(const armnn::PadDescriptor& param, const char* name)
19 : LayerWithParameters(1, 1, LayerType::Pad, param, name)
20{}
21
Derek Lamberti94a88d22019-12-10 21:12:59 +000022std::unique_ptr<IWorkload> PadLayer::CreateWorkload(const armnn::IWorkloadFactory& factory) const
Mohamed Nour Abouelseoud5662c202018-09-24 13:30:09 +010023{
24 PadQueueDescriptor descriptor;
25 descriptor.m_Parameters.m_PadList = m_Param.m_PadList;
26
Derek Lamberti94a88d22019-12-10 21:12:59 +000027 return factory.CreatePad(descriptor, PrepInfoAndDesc(descriptor));
Mohamed Nour Abouelseoud5662c202018-09-24 13:30:09 +010028}
29
30PadLayer* PadLayer::Clone(Graph& graph) const
31{
32 auto layer = CloneBase<PadLayer>(graph, m_Param, GetName());
33
34 layer->m_Param.m_PadList = m_Param.m_PadList;
35
36 return std::move(layer);
37}
38
Finn Williamsf24effa2020-07-03 10:12:03 +010039void PadLayer::ValidateTensorShapesFromInputs()
Mohamed Nour Abouelseoud5662c202018-09-24 13:30:09 +010040{
Teresa Charlincdc01492020-06-09 18:00:20 +010041
Mohamed Nour Abouelseoud5662c202018-09-24 13:30:09 +010042 return;
43}
44
jimfly01e9e7bfd2019-01-24 22:29:33 +000045void PadLayer::Accept(ILayerVisitor& visitor) const
46{
47 visitor.VisitPadLayer(this, GetParameters(), GetName());
48}
49
Mohamed Nour Abouelseoud5662c202018-09-24 13:30:09 +010050} // namespace armnn