24.02
|
This layer represents a depthwise convolution 2d operation. More...
#include <DepthwiseConvolution2dLayer.hpp>
Public Member Functions | |
virtual std::unique_ptr< IWorkload > | CreateWorkload (const IWorkloadFactory &factory) const override |
Makes a workload for the DepthwiseConvolution2d type. More... | |
DepthwiseConvolution2dLayer * | 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 DepthwiseConvolution2dLayer. 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< DepthwiseConvolution2dDescriptor > | |
const DepthwiseConvolution2dDescriptor & | 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 | |
DepthwiseConvolution2dLayer (const DepthwiseConvolution2dDescriptor ¶m, const char *name) | |
Constructor to create a DepthwiseConvolution2dLayer. More... | |
~DepthwiseConvolution2dLayer ()=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< DepthwiseConvolution2dDescriptor > | |
LayerWithParameters (unsigned int numInputSlots, unsigned int numOutputSlots, LayerType type, const DepthwiseConvolution2dDescriptor ¶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< DepthwiseConvolution2dDescriptor > | |
using | DescriptorType = DepthwiseConvolution2dDescriptor |
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< DepthwiseConvolution2dDescriptor > | |
DepthwiseConvolution2dDescriptor | 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 depthwise convolution 2d operation.
Definition at line 15 of file DepthwiseConvolution2dLayer.hpp.
|
protected |
Constructor to create a DepthwiseConvolution2dLayer.
[in] | param | DepthwiseConvolution2dDescriptor to configure the depthwise convolution2d. |
[in] | name | Optional name for the layer. |
Definition at line 23 of file DepthwiseConvolution2dLayer.cpp.
References armnn::DepthwiseConvolution2d.
|
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 DepthwiseConvolution2dLayer.cpp.
References Layer::GetName(), and LayerWithParameters< DepthwiseConvolution2dDescriptor >::m_Param.
|
overridevirtual |
Makes a workload for the DepthwiseConvolution2d 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 50 of file DepthwiseConvolution2dLayer.cpp.
References IWorkloadFactory::CreateWorkload(), armnn::DepthwiseConvolution2d, LayerWithParameters< DepthwiseConvolution2dDescriptor >::PrepInfoAndDesc(), and Layer::SetAdditionalInfo().
|
overridevirtual |
Apply a visitor to this layer.
Reimplemented from Layer.
Definition at line 132 of file DepthwiseConvolution2dLayer.cpp.
References IStrategy::ExecuteStrategy(), Layer::GetName(), and LayerWithParameters< DepthwiseConvolution2dDescriptor >::GetParameters().
|
overrideprotectedvirtual |
Retrieve the handles to the constant values connected to the layer.
Reimplemented from Layer.
Definition at line 126 of file DepthwiseConvolution2dLayer.cpp.
References LayerWithParameters< DepthwiseConvolution2dDescriptor >::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 65 of file DepthwiseConvolution2dLayer.cpp.
References ARMNN_ASSERT, ARMNN_ASSERT_MSG, DataLayoutIndexed::GetHeightIndex(), TensorShape::GetNumDimensions(), DataLayoutIndexed::GetWidthIndex(), DepthwiseConvolution2dDescriptor::m_DataLayout, DepthwiseConvolution2dDescriptor::m_DilationX, DepthwiseConvolution2dDescriptor::m_DilationY, DepthwiseConvolution2dDescriptor::m_PadBottom, DepthwiseConvolution2dDescriptor::m_PadLeft, DepthwiseConvolution2dDescriptor::m_PadRight, DepthwiseConvolution2dDescriptor::m_PadTop, LayerWithParameters< DepthwiseConvolution2dDescriptor >::m_Param, DepthwiseConvolution2dDescriptor::m_StrideX, DepthwiseConvolution2dDescriptor::m_StrideY, and armnn::NHWC.
Referenced by DepthwiseConvolution2dLayer::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 DepthwiseConvolution2dLayer.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 DepthwiseConvolution2dLayer.cpp.
References Layer::GetInputSlot(), TensorInfo::GetShape(), InputSlot::GetTensorInfo(), and LayerWithParameters< Parameters >::SerializeLayerParameters().
|
overridevirtual |
Check if the input tensor shape(s) will lead to a valid configuration of DepthwiseConvolution2dLayer.
[in] | shapeInferenceMethod | Indicates if output shape shall be overwritten or just validated. |
Implements Layer.
Definition at line 105 of file DepthwiseConvolution2dLayer.cpp.
References ARMNN_ASSERT, ARMNN_ASSERT_MSG, CHECK_LOCATION, Layer::GetInputSlot(), DepthwiseConvolution2dDescriptor::GetNumInputs(), Layer::GetOutputSlot(), TensorInfo::GetShape(), InputSlot::GetTensorInfo(), OutputSlot::GetTensorInfo(), DepthwiseConvolution2dLayer::InferOutputShapes(), LayerWithParameters< DepthwiseConvolution2dDescriptor >::m_Param, Layer::m_ShapeInferenceMethod, Layer::ValidateAndCopyShape(), Layer::VerifyLayerConnections(), and Layer::VerifyShapeInferenceType().