ArmNN
 20.02
PadLayer.cpp
Go to the documentation of this file.
1 //
2 // Copyright © 2017 Arm Ltd. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 
6 #include "PadLayer.hpp"
7 #include "LayerCloneBase.hpp"
8 
12 
13 #include <cstring>
14 
15 namespace armnn
16 {
17 
18 PadLayer::PadLayer(const armnn::PadDescriptor& param, const char* name)
19  : LayerWithParameters(1, 1, LayerType::Pad, param, name)
20 {}
21 
22 std::unique_ptr<IWorkload> PadLayer::CreateWorkload(const armnn::IWorkloadFactory& factory) const
23 {
24  PadQueueDescriptor descriptor;
26 
27  return factory.CreatePad(descriptor, PrepInfoAndDesc(descriptor));
28 }
29 
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 
40 {
41  return;
42 }
43 
44 void PadLayer::Accept(ILayerVisitor& visitor) const
45 {
46  visitor.VisitPadLayer(this, GetParameters(), GetName());
47 }
48 
49 } // namespace armnn
PadDescriptor m_Param
The parameters for the layer (not including tensor-valued weights etc.).
virtual std::unique_ptr< IWorkload > CreateWorkload(const IWorkloadFactory &factory) const override
Makes a workload for the Pad type.
Definition: PadLayer.cpp:22
std::vector< std::pair< unsigned int, unsigned int > > m_PadList
Specifies the padding for input dimension.
Copyright (c) 2020 ARM Limited.
This layer represents a pad operation.
Definition: PadLayer.hpp:14
void Pad(const TensorInfo &inputInfo, const TensorInfo &outputInfo, std::vector< std::pair< unsigned int, unsigned int >> m_padList, const T *inputData, T *outData, const float padValue)
Definition: Pad.cpp:22
A PadDescriptor for the PadLayer.
virtual std::unique_ptr< IWorkload > CreatePad(const PadQueueDescriptor &descriptor, const WorkloadInfo &Info) const
PadLayer(const PadDescriptor &param, const char *name)
Constructor to create a PadLayer.
Definition: PadLayer.cpp:18
WorkloadInfo PrepInfoAndDesc(QueueDescriptor &descriptor) const
Helper function to reduce duplication in *LayerCreateWorkload.
void Accept(ILayerVisitor &visitor) const override
Apply a visitor to this layer.
Definition: PadLayer.cpp:44
const char * GetName() const override
Returns the name of the layer.
Definition: Layer.hpp:305
void ValidateTensorShapesFromInputs() override
Check if the input tensor shape(s) will lead to a valid configuration of PadLayer.
Definition: PadLayer.cpp:39
PadLayer * Clone(Graph &graph) const override
Creates a dynamically-allocated copy of this layer.
Definition: PadLayer.cpp:30
virtual void VisitPadLayer(const IConnectableLayer *layer, const PadDescriptor &padDescriptor, const char *name=nullptr)=0
Function a pad layer should call back to when its Accept(ILayerVisitor&) function is invoked...