24.02
|
This layer represents a convolution 2d operation. More...
#include <Convolution2dLayer.hpp>
Public Member Functions | |
virtual std::unique_ptr< IWorkload > | CreateWorkload (const IWorkloadFactory &factory) const override |
Makes a workload for the Convolution2d type. More... | |
Convolution2dLayer * | Clone (Graph &graph) const override |
Creates a dynamically-allocated copy of this layer. More... | |
void | ValidateTensorShapesFromInputs () override |
Check if the input tensor shape(s) will lead to a valid configuration of Convolution2dLayer. More... | |
std::vector< TensorShape > | InferOutputShapes (const std::vector< TensorShape > &inputShapes) const override |
By default returns inputShapes if the number of inputs are equal to number of outputs, otherwise infers the output shapes from given input shapes and layer properties. More... | |
void | ExecuteStrategy (IStrategy &strategy) const override |
Apply a visitor to this layer. More... | |
void | SerializeLayerParameters (ParameterStringifyFunction &fn) const override |
Helper to serialize the layer parameters to string. More... | |
void | ReleaseConstantData () override |
This layer does not have any data stored, weights and bias are now stored in constant layers. More... | |
Public Member Functions inherited from LayerWithParameters< Convolution2dDescriptor > | |
const Convolution2dDescriptor & | GetParameters () const override |
If the layer has a descriptor return it. More... | |
void | SerializeLayerParameters (ParameterStringifyFunction &fn) const override |
Helper to serialize the layer parameters to string (currently used in DotSerializer and company). More... | |
Public Member Functions inherited from Layer | |
Layer (unsigned int numInputSlots, unsigned int numOutputSlots, LayerType type, const char *name) | |
Layer (unsigned int numInputSlots, unsigned int numOutputSlots, LayerType type, DataLayout layout, const char *name) | |
const std::string & | GetNameStr () const |
const OutputHandler & | GetOutputHandler (unsigned int i=0) const |
OutputHandler & | GetOutputHandler (unsigned int i=0) |
ShapeInferenceMethod | GetShapeInferenceMethod () const |
bool | GetAllowExpandedDims () const |
const std::vector< InputSlot > & | GetInputSlots () const |
const std::vector< OutputSlot > & | GetOutputSlots () const |
std::vector< InputSlot >::iterator | BeginInputSlots () |
std::vector< InputSlot >::iterator | EndInputSlots () |
std::vector< OutputSlot >::iterator | BeginOutputSlots () |
std::vector< OutputSlot >::iterator | EndOutputSlots () |
bool | IsOutputUnconnected () |
void | ResetPriority () const |
LayerPriority | GetPriority () const |
LayerType | GetType () const override |
Returns the armnn::LayerType of this layer. More... | |
DataType | GetDataType () const |
const BackendId & | GetBackendId () const |
void | SetBackendId (const BackendId &id) override |
Set the backend of the IConnectableLayer. More... | |
virtual void | CreateTensorHandles (const TensorHandleFactoryRegistry ®istry, const IWorkloadFactory &factory, const bool IsMemoryManaged=true) |
void | VerifyLayerConnections (unsigned int expectedConnections, const CheckLocation &location) const |
template<typename Op > | |
void | OperateOnConstantTensors (Op op) |
const char * | GetName () const override |
Returns the name of the layer. More... | |
unsigned int | GetNumInputSlots () const override |
Returns the number of connectable input slots. More... | |
unsigned int | GetNumOutputSlots () const override |
Returns the number of connectable output slots. More... | |
const InputSlot & | GetInputSlot (unsigned int index) const override |
Get a const input slot handle by slot index. More... | |
InputSlot & | GetInputSlot (unsigned int index) override |
Get the input slot handle by slot index. More... | |
const OutputSlot & | GetOutputSlot (unsigned int index=0) const override |
Get the const output slot handle by slot index. More... | |
OutputSlot & | GetOutputSlot (unsigned int index=0) override |
Get the output slot handle by slot index. More... | |
void | SetGuid (LayerGuid guid) |
LayerGuid | GetGuid () const final |
Returns the unique id of the layer. More... | |
void | AddRelatedLayerName (const std::string layerName) |
const std::list< std::string > & | GetRelatedLayerNames () |
virtual void | Reparent (Graph &dest, std::list< Layer * >::const_iterator iterator)=0 |
void | BackendSelectionHint (Optional< BackendId > backend) final |
Provide a hint for the optimizer as to which backend to prefer for this layer. More... | |
Optional< BackendId > | GetBackendHint () const |
void | SetShapeInferenceMethod (ShapeInferenceMethod shapeInferenceMethod) |
void | SetAllowExpandedDims (bool allowExpandedDims) |
template<typename T > | |
std::shared_ptr< T > | GetAdditionalInformation () const |
void | SetAdditionalInfoForObject (const AdditionalInfoObjectPtr &additionalInfo) |
virtual const BaseDescriptor & | GetParameters () const override |
If the layer has a descriptor return it. More... | |
Protected Member Functions | |
Convolution2dLayer (const Convolution2dDescriptor ¶m, const char *name) | |
Constructor to create a Convolution2dLayer. More... | |
~Convolution2dLayer ()=default | |
Default destructor. More... | |
ImmutableConstantTensors | GetConstantTensorsByRef () const override |
Retrieve the handles to the constant values connected to the layer. More... | |
Protected Member Functions inherited from LayerWithParameters< Convolution2dDescriptor > | |
LayerWithParameters (unsigned int numInputSlots, unsigned int numOutputSlots, LayerType type, const Convolution2dDescriptor ¶m, const char *name) | |
~LayerWithParameters ()=default | |
WorkloadInfo | PrepInfoAndDesc (QueueDescriptor &descriptor) const |
Helper function to reduce duplication in *Layer::CreateWorkload. More... | |
void | ExecuteStrategy (IStrategy &strategy) const override |
Apply a visitor to this layer. More... | |
Layer::ImmutableConstantTensors | GetConnectedConstantAsInputTensors () const |
Protected Member Functions inherited from Layer | |
virtual | ~Layer ()=default |
template<typename QueueDescriptor > | |
void | CollectQueueDescriptorInputs (QueueDescriptor &descriptor, WorkloadInfo &info) const |
template<typename QueueDescriptor > | |
void | CollectQueueDescriptorOutputs (QueueDescriptor &descriptor, WorkloadInfo &info) const |
void | ValidateAndCopyShape (const TensorShape &outputShape, const TensorShape &inferredShape, const ShapeInferenceMethod shapeInferenceMethod, const std::string &layerName, const unsigned int outputSlotIndex=0) |
void | VerifyShapeInferenceType (const TensorShape &outputShape, ShapeInferenceMethod shapeInferenceMethod) |
template<typename QueueDescriptor > | |
WorkloadInfo | PrepInfoAndDesc (QueueDescriptor &descriptor) const |
Helper function to reduce duplication in *Layer::CreateWorkload. More... | |
template<typename LayerType , typename ... Params> | |
LayerType * | CloneBase (Graph &graph, Params &&... params) const |
virtual ConstantTensors | GetConstantTensorsByRef () override final |
void | SetAdditionalInfo (QueueDescriptor &descriptor) const |
Protected Member Functions inherited from IConnectableLayer | |
~IConnectableLayer () | |
Objects are not deletable via the handle. More... | |
Additional Inherited Members | |
Public Types inherited from LayerWithParameters< Convolution2dDescriptor > | |
using | DescriptorType = Convolution2dDescriptor |
Public Types inherited from IConnectableLayer | |
using | ConstantTensors = std::vector< std::reference_wrapper< std::shared_ptr< ConstTensorHandle > >> |
using | ImmutableConstantTensors = std::vector< std::reference_wrapper< const std::shared_ptr< ConstTensorHandle > >> |
Protected Attributes inherited from LayerWithParameters< Convolution2dDescriptor > | |
Convolution2dDescriptor | m_Param |
The parameters for the layer (not including tensor-valued weights etc.). More... | |
Protected Attributes inherited from Layer | |
AdditionalInfoObjectPtr | m_AdditionalInfoObject |
std::vector< OutputHandler > | m_OutputHandlers |
ShapeInferenceMethod | m_ShapeInferenceMethod |
This layer represents a convolution 2d operation.
Definition at line 15 of file Convolution2dLayer.hpp.
|
protected |
Constructor to create a Convolution2dLayer.
[in] | param | Convolution2dDescriptor to configure the convolution2d operation. |
[in] | name | Optional name for the layer. |
Definition at line 23 of file Convolution2dLayer.cpp.
References armnn::Convolution2d.
|
protecteddefault |
Default destructor.
|
overridevirtual |
Creates a dynamically-allocated copy of this layer.
[in] | graph | The graph into which this layer is being cloned. |
Implements Layer.
Definition at line 58 of file Convolution2dLayer.cpp.
References Layer::GetName(), and LayerWithParameters< Convolution2dDescriptor >::m_Param.
|
overridevirtual |
Makes a workload for the Convolution2d type.
[in] | graph | The graph where this layer can be found. |
[in] | factory | The workload factory which will create the workload. |
Implements Layer.
Definition at line 49 of file Convolution2dLayer.cpp.
References ARMNN_SCOPED_PROFILING_EVENT, armnn::Convolution2d, IWorkloadFactory::CreateWorkload(), LayerWithParameters< Convolution2dDescriptor >::PrepInfoAndDesc(), Layer::SetAdditionalInfo(), and armnn::Undefined.
|
overridevirtual |
Apply a visitor to this layer.
Reimplemented from Layer.
Definition at line 128 of file Convolution2dLayer.cpp.
References IStrategy::ExecuteStrategy(), Layer::GetName(), and LayerWithParameters< Convolution2dDescriptor >::GetParameters().
|
overrideprotectedvirtual |
Retrieve the handles to the constant values connected to the layer.
Reimplemented from Layer.
Definition at line 122 of file Convolution2dLayer.cpp.
References LayerWithParameters< Convolution2dDescriptor >::GetConnectedConstantAsInputTensors().
|
overridevirtual |
By default returns inputShapes if the number of inputs are equal to number of outputs, otherwise infers the output shapes from given input shapes and layer properties.
[in] | inputShapes | The input shapes layer has. |
Reimplemented from Layer.
Definition at line 64 of file Convolution2dLayer.cpp.
References ARMNN_ASSERT, ARMNN_ASSERT_MSG, DataLayoutIndexed::GetHeightIndex(), TensorShape::GetNumDimensions(), DataLayoutIndexed::GetWidthIndex(), Convolution2dDescriptor::m_DataLayout, Convolution2dDescriptor::m_DilationX, Convolution2dDescriptor::m_DilationY, Convolution2dDescriptor::m_PadBottom, Convolution2dDescriptor::m_PadLeft, Convolution2dDescriptor::m_PadRight, Convolution2dDescriptor::m_PadTop, LayerWithParameters< Convolution2dDescriptor >::m_Param, Convolution2dDescriptor::m_StrideX, Convolution2dDescriptor::m_StrideY, and armnn::NHWC.
Referenced by Convolution2dLayer::ValidateTensorShapesFromInputs().
|
inlineoverridevirtual |
This layer does not have any data stored, weights and bias are now stored in constant layers.
We do not want to release the data in the constant layer, that is why we override with an empty function.
Reimplemented from Layer.
Definition at line 46 of file Convolution2dLayer.hpp.
|
overridevirtual |
Helper to serialize the layer parameters to string.
(currently used in DotSerializer and company).
Reimplemented from Layer.
Definition at line 29 of file Convolution2dLayer.cpp.
References DataLayoutIndexed::GetHeightIndex(), Layer::GetInputSlot(), TensorInfo::GetShape(), InputSlot::GetTensorInfo(), DataLayoutIndexed::GetWidthIndex(), Convolution2dDescriptor::m_DataLayout, LayerWithParameters< Convolution2dDescriptor >::m_Param, and LayerWithParameters< Parameters >::SerializeLayerParameters().
|
overridevirtual |
Check if the input tensor shape(s) will lead to a valid configuration of Convolution2dLayer.
[in] | shapeInferenceMethod | Indicates if output shape shall be overwritten or just validated. |
Implements Layer.
Definition at line 102 of file Convolution2dLayer.cpp.
References ARMNN_ASSERT, ARMNN_ASSERT_MSG, CHECK_LOCATION, Layer::GetInputSlot(), Convolution2dDescriptor::GetNumInputs(), Layer::GetOutputSlot(), TensorInfo::GetShape(), InputSlot::GetTensorInfo(), OutputSlot::GetTensorInfo(), Convolution2dLayer::InferOutputShapes(), LayerWithParameters< Convolution2dDescriptor >::m_Param, Layer::m_ShapeInferenceMethod, Layer::ValidateAndCopyShape(), Layer::VerifyLayerConnections(), and Layer::VerifyShapeInferenceType().