|
25.02
|
This layer represents a LSTM operation. More...
#include <LstmLayer.hpp>
Public Member Functions | |
| virtual std::unique_ptr< IWorkload > | CreateWorkload (const IWorkloadFactory &factory) const override |
| Makes a workload for the LSTM type. More... | |
| LstmLayer * | 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 LstmLayer. 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... | |
Public Member Functions inherited from LayerWithParameters< LstmDescriptor > | |
| const LstmDescriptor & | 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 |
| virtual void | ReleaseConstantData () |
| 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) |
Protected Member Functions | |
| LstmLayer (const LstmDescriptor ¶m, const char *name) | |
| Constructor to create a LstmLayer. More... | |
| ~LstmLayer ()=default | |
| Default destructor. More... | |
| Layer::ImmutableConstantTensors | GetConstantTensorsByRef () const override |
| Retrieve the handles to the constant values stored by the layer. More... | |
Protected Member Functions inherited from LayerWithParameters< LstmDescriptor > | |
| LayerWithParameters (unsigned int numInputSlots, unsigned int numOutputSlots, LayerType type, const LstmDescriptor ¶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< LstmDescriptor > | |
| using | DescriptorType = LstmDescriptor |
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< LstmDescriptor > | |
| LstmDescriptor | 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 LSTM operation.
Definition at line 16 of file LstmLayer.hpp.
|
protected |
Constructor to create a LstmLayer.
| [in] | param | LstmDescriptor to configure the lstm operation. |
| [in] | name | Optional name for the layer. |
Definition at line 17 of file LstmLayer.cpp.
References armnn::Lstm.
|
protecteddefault |
Default destructor.
Creates a dynamically-allocated copy of this layer.
| [in] | graph | The graph into which this layer is being cloned. |
Implements Layer.
Definition at line 80 of file LstmLayer.cpp.
References Layer::GetName(), LstmLayer::m_BasicParameters, LstmBasicParameters::m_CellBias, LstmOptLayerNormParameters::m_CellLayerNormWeights, LstmOptPeepholeParameters::m_CellToForgetWeights, LstmOptPeepholeParameters::m_CellToInputWeights, LstmOptPeepholeParameters::m_CellToOutputWeights, LstmDescriptor::m_CifgEnabled, LstmLayer::m_CifgParameters, LstmBasicParameters::m_ForgetGateBias, LstmOptLayerNormParameters::m_ForgetLayerNormWeights, LstmOptCifgParameters::m_InputGateBias, LstmOptLayerNormParameters::m_InputLayerNormWeights, LstmBasicParameters::m_InputToCellWeights, LstmBasicParameters::m_InputToForgetWeights, LstmOptCifgParameters::m_InputToInputWeights, LstmBasicParameters::m_InputToOutputWeights, LstmDescriptor::m_LayerNormEnabled, LstmLayer::m_LayerNormParameters, LstmBasicParameters::m_OutputGateBias, LstmOptLayerNormParameters::m_OutputLayerNormWeights, LayerWithParameters< LstmDescriptor >::m_Param, LstmDescriptor::m_PeepholeEnabled, LstmLayer::m_PeepholeParameters, LstmOptProjectionParameters::m_ProjectionBias, LstmDescriptor::m_ProjectionEnabled, LstmLayer::m_ProjectionParameters, LstmOptProjectionParameters::m_ProjectionWeights, LstmBasicParameters::m_RecurrentToCellWeights, LstmBasicParameters::m_RecurrentToForgetWeights, LstmOptCifgParameters::m_RecurrentToInputWeights, and LstmBasicParameters::m_RecurrentToOutputWeights.
|
overridevirtual |
Makes a workload for the LSTM 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 22 of file LstmLayer.cpp.
References IWorkloadFactory::CreateWorkload(), armnn::Lstm, LstmLayer::m_BasicParameters, LstmQueueDescriptor::m_CellBias, LstmBasicParameters::m_CellBias, LstmQueueDescriptor::m_CellLayerNormWeights, LstmOptLayerNormParameters::m_CellLayerNormWeights, LstmQueueDescriptor::m_CellToForgetWeights, LstmOptPeepholeParameters::m_CellToForgetWeights, LstmQueueDescriptor::m_CellToInputWeights, LstmOptPeepholeParameters::m_CellToInputWeights, LstmQueueDescriptor::m_CellToOutputWeights, LstmOptPeepholeParameters::m_CellToOutputWeights, LstmDescriptor::m_CifgEnabled, LstmLayer::m_CifgParameters, LstmQueueDescriptor::m_ForgetGateBias, LstmBasicParameters::m_ForgetGateBias, LstmQueueDescriptor::m_ForgetLayerNormWeights, LstmOptLayerNormParameters::m_ForgetLayerNormWeights, LstmQueueDescriptor::m_InputGateBias, LstmOptCifgParameters::m_InputGateBias, LstmQueueDescriptor::m_InputLayerNormWeights, LstmOptLayerNormParameters::m_InputLayerNormWeights, LstmQueueDescriptor::m_InputToCellWeights, LstmBasicParameters::m_InputToCellWeights, LstmQueueDescriptor::m_InputToForgetWeights, LstmBasicParameters::m_InputToForgetWeights, LstmQueueDescriptor::m_InputToInputWeights, LstmOptCifgParameters::m_InputToInputWeights, LstmQueueDescriptor::m_InputToOutputWeights, LstmBasicParameters::m_InputToOutputWeights, LstmDescriptor::m_LayerNormEnabled, LstmLayer::m_LayerNormParameters, LstmQueueDescriptor::m_OutputGateBias, LstmBasicParameters::m_OutputGateBias, LstmQueueDescriptor::m_OutputLayerNormWeights, LstmOptLayerNormParameters::m_OutputLayerNormWeights, LayerWithParameters< LstmDescriptor >::m_Param, LstmDescriptor::m_PeepholeEnabled, LstmLayer::m_PeepholeParameters, LstmQueueDescriptor::m_ProjectionBias, LstmOptProjectionParameters::m_ProjectionBias, LstmDescriptor::m_ProjectionEnabled, LstmLayer::m_ProjectionParameters, LstmQueueDescriptor::m_ProjectionWeights, LstmOptProjectionParameters::m_ProjectionWeights, LstmQueueDescriptor::m_RecurrentToCellWeights, LstmBasicParameters::m_RecurrentToCellWeights, LstmQueueDescriptor::m_RecurrentToForgetWeights, LstmBasicParameters::m_RecurrentToForgetWeights, LstmQueueDescriptor::m_RecurrentToInputWeights, LstmOptCifgParameters::m_RecurrentToInputWeights, LstmQueueDescriptor::m_RecurrentToOutputWeights, LstmBasicParameters::m_RecurrentToOutputWeights, LayerWithParameters< LstmDescriptor >::PrepInfoAndDesc(), and Layer::SetAdditionalInfo().
|
overridevirtual |
Apply a visitor to this layer.
Reimplemented from Layer.
Definition at line 402 of file LstmLayer.cpp.
References IStrategy::ExecuteStrategy(), Layer::GetName(), LayerWithParameters< LstmDescriptor >::GetParameters(), ManagedConstTensorHandle::GetTensorInfo(), LstmLayer::m_BasicParameters, LstmBasicParameters::m_CellBias, LstmOptLayerNormParameters::m_CellLayerNormWeights, LstmOptPeepholeParameters::m_CellToForgetWeights, LstmOptPeepholeParameters::m_CellToInputWeights, LstmOptPeepholeParameters::m_CellToOutputWeights, LstmDescriptor::m_CifgEnabled, LstmLayer::m_CifgParameters, LstmBasicParameters::m_ForgetGateBias, LstmOptLayerNormParameters::m_ForgetLayerNormWeights, LstmOptCifgParameters::m_InputGateBias, LstmOptLayerNormParameters::m_InputLayerNormWeights, LstmBasicParameters::m_InputToCellWeights, LstmBasicParameters::m_InputToForgetWeights, LstmOptCifgParameters::m_InputToInputWeights, LstmBasicParameters::m_InputToOutputWeights, LstmDescriptor::m_LayerNormEnabled, LstmLayer::m_LayerNormParameters, LstmBasicParameters::m_OutputGateBias, LstmOptLayerNormParameters::m_OutputLayerNormWeights, LstmDescriptor::m_PeepholeEnabled, LstmLayer::m_PeepholeParameters, LstmOptProjectionParameters::m_ProjectionBias, LstmDescriptor::m_ProjectionEnabled, LstmLayer::m_ProjectionParameters, LstmOptProjectionParameters::m_ProjectionWeights, LstmBasicParameters::m_RecurrentToCellWeights, LstmBasicParameters::m_RecurrentToForgetWeights, LstmOptCifgParameters::m_RecurrentToInputWeights, LstmBasicParameters::m_RecurrentToOutputWeights, and ManagedConstTensorHandle::Map().
|
overrideprotectedvirtual |
Retrieve the handles to the constant values stored by the layer.
Reimplemented from Layer.
Definition at line 368 of file LstmLayer.cpp.
References LstmLayer::m_BasicParameters, LstmBasicParameters::m_CellBias, LstmOptLayerNormParameters::m_CellLayerNormWeights, LstmOptPeepholeParameters::m_CellToForgetWeights, LstmOptPeepholeParameters::m_CellToInputWeights, LstmOptPeepholeParameters::m_CellToOutputWeights, LstmLayer::m_CifgParameters, LstmBasicParameters::m_ForgetGateBias, LstmOptLayerNormParameters::m_ForgetLayerNormWeights, LstmOptCifgParameters::m_InputGateBias, LstmOptLayerNormParameters::m_InputLayerNormWeights, LstmBasicParameters::m_InputToCellWeights, LstmBasicParameters::m_InputToForgetWeights, LstmOptCifgParameters::m_InputToInputWeights, LstmBasicParameters::m_InputToOutputWeights, LstmLayer::m_LayerNormParameters, LstmBasicParameters::m_OutputGateBias, LstmOptLayerNormParameters::m_OutputLayerNormWeights, LstmLayer::m_PeepholeParameters, LstmOptProjectionParameters::m_ProjectionBias, LstmLayer::m_ProjectionParameters, LstmOptProjectionParameters::m_ProjectionWeights, LstmBasicParameters::m_RecurrentToCellWeights, LstmBasicParameters::m_RecurrentToForgetWeights, LstmOptCifgParameters::m_RecurrentToInputWeights, and LstmBasicParameters::m_RecurrentToOutputWeights.
|
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 150 of file LstmLayer.cpp.
References LstmDescriptor::m_CifgEnabled, and LayerWithParameters< LstmDescriptor >::m_Param.
Referenced by LstmLayer::ValidateTensorShapesFromInputs().
|
overridevirtual |
Check if the input tensor shape(s) will lead to a valid configuration of LstmLayer.
| [in] | shapeInferenceMethod | Indicates if output shape shall be overwritten or just validated. |
Implements Layer.
Definition at line 172 of file LstmLayer.cpp.
References CHECK_LOCATION, Layer::GetInputSlot(), Layer::GetOutputSlot(), TensorInfo::GetShape(), InputSlot::GetTensorInfo(), OutputSlot::GetTensorInfo(), armnn::GetTensorInfo(), LstmLayer::InferOutputShapes(), LstmLayer::m_BasicParameters, LstmBasicParameters::m_CellBias, LstmOptPeepholeParameters::m_CellToForgetWeights, LstmOptPeepholeParameters::m_CellToInputWeights, LstmOptPeepholeParameters::m_CellToOutputWeights, LstmDescriptor::m_CifgEnabled, LstmLayer::m_CifgParameters, LstmBasicParameters::m_ForgetGateBias, LstmOptCifgParameters::m_InputGateBias, LstmBasicParameters::m_InputToCellWeights, LstmBasicParameters::m_InputToForgetWeights, LstmOptCifgParameters::m_InputToInputWeights, LstmBasicParameters::m_InputToOutputWeights, LstmBasicParameters::m_OutputGateBias, LayerWithParameters< LstmDescriptor >::m_Param, LstmDescriptor::m_PeepholeEnabled, LstmLayer::m_PeepholeParameters, LstmDescriptor::m_ProjectionEnabled, LstmLayer::m_ProjectionParameters, LstmOptProjectionParameters::m_ProjectionWeights, LstmBasicParameters::m_RecurrentToCellWeights, LstmBasicParameters::m_RecurrentToForgetWeights, LstmOptCifgParameters::m_RecurrentToInputWeights, LstmBasicParameters::m_RecurrentToOutputWeights, Layer::m_ShapeInferenceMethod, Layer::ValidateAndCopyShape(), Layer::VerifyLayerConnections(), and Layer::VerifyShapeInferenceType().
| LstmBasicParameters m_BasicParameters |
Definition at line 20 of file LstmLayer.hpp.
Referenced by NetworkImpl::AddLstmLayer(), LstmLayer::Clone(), LstmLayer::CreateWorkload(), LstmLayer::ExecuteStrategy(), LstmLayer::GetConstantTensorsByRef(), and LstmLayer::ValidateTensorShapesFromInputs().
| LstmOptCifgParameters m_CifgParameters |
Definition at line 21 of file LstmLayer.hpp.
Referenced by LstmLayer::Clone(), LstmLayer::CreateWorkload(), LstmLayer::ExecuteStrategy(), LstmLayer::GetConstantTensorsByRef(), and LstmLayer::ValidateTensorShapesFromInputs().
| LstmOptLayerNormParameters m_LayerNormParameters |
Definition at line 24 of file LstmLayer.hpp.
Referenced by LstmLayer::Clone(), LstmLayer::CreateWorkload(), LstmLayer::ExecuteStrategy(), and LstmLayer::GetConstantTensorsByRef().
| LstmOptPeepholeParameters m_PeepholeParameters |
Definition at line 23 of file LstmLayer.hpp.
Referenced by LstmLayer::Clone(), LstmLayer::CreateWorkload(), LstmLayer::ExecuteStrategy(), LstmLayer::GetConstantTensorsByRef(), and LstmLayer::ValidateTensorShapesFromInputs().
| LstmOptProjectionParameters m_ProjectionParameters |
Definition at line 22 of file LstmLayer.hpp.
Referenced by LstmLayer::Clone(), LstmLayer::CreateWorkload(), LstmLayer::ExecuteStrategy(), LstmLayer::GetConstantTensorsByRef(), and LstmLayer::ValidateTensorShapesFromInputs().