24.02
|
This layer represents a fully connected operation. More...
#include <FullyConnectedLayer.hpp>
Public Member Functions | |
virtual std::unique_ptr< IWorkload > | CreateWorkload (const IWorkloadFactory &factory) const override |
Makes a workload for the FullyConnected type. More... | |
FullyConnectedLayer * | 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 FullyConnectedLayer. 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 | 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< FullyConnectedDescriptor > | |
const FullyConnectedDescriptor & | 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 | |
FullyConnectedLayer (const FullyConnectedDescriptor ¶m, const char *name) | |
Constructor to create a FullyConnectedLayer. More... | |
~FullyConnectedLayer ()=default | |
Default destructor. More... | |
ImmutableConstantTensors | GetConstantTensorsByRef () const override |
Retrieve the handles to the constant values stored by the layer. More... | |
Protected Member Functions inherited from LayerWithParameters< FullyConnectedDescriptor > | |
LayerWithParameters (unsigned int numInputSlots, unsigned int numOutputSlots, LayerType type, const FullyConnectedDescriptor ¶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< FullyConnectedDescriptor > | |
using | DescriptorType = FullyConnectedDescriptor |
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< FullyConnectedDescriptor > | |
FullyConnectedDescriptor | 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 fully connected operation.
Definition at line 15 of file FullyConnectedLayer.hpp.
|
protected |
Constructor to create a FullyConnectedLayer.
[in] | param | FullyConnectedDescriptor to configure the fully connected operation. |
[in] | name | Optional name for the layer. |
Definition at line 17 of file FullyConnectedLayer.cpp.
|
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 29 of file FullyConnectedLayer.cpp.
References Layer::GetName(), and LayerWithParameters< FullyConnectedDescriptor >::m_Param.
|
overridevirtual |
Makes a workload for the FullyConnected 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 FullyConnectedLayer.cpp.
References IWorkloadFactory::CreateWorkload(), armnn::FullyConnected, LayerWithParameters< FullyConnectedDescriptor >::PrepInfoAndDesc(), and Layer::SetAdditionalInfo().
|
overridevirtual |
Apply a visitor to this layer.
Reimplemented from Layer.
Definition at line 70 of file FullyConnectedLayer.cpp.
References IStrategy::ExecuteStrategy(), Layer::GetName(), and LayerWithParameters< FullyConnectedDescriptor >::GetParameters().
|
overrideprotectedvirtual |
Retrieve the handles to the constant values stored by the layer.
Reimplemented from Layer.
Definition at line 64 of file FullyConnectedLayer.cpp.
References LayerWithParameters< FullyConnectedDescriptor >::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 35 of file FullyConnectedLayer.cpp.
References ARMNN_ASSERT, LayerWithParameters< FullyConnectedDescriptor >::m_Param, and FullyConnectedDescriptor::m_TransposeWeightMatrix.
Referenced by FullyConnectedLayer::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 44 of file FullyConnectedLayer.hpp.
|
overridevirtual |
Check if the input tensor shape(s) will lead to a valid configuration of FullyConnectedLayer.
[in] | shapeInferenceMethod | Indicates if output shape shall be overwritten or just validate. |
Implements Layer.
Definition at line 48 of file FullyConnectedLayer.cpp.
References ARMNN_ASSERT, Layer::GetInputSlot(), Layer::GetOutputSlot(), TensorInfo::GetShape(), InputSlot::GetTensorInfo(), OutputSlot::GetTensorInfo(), FullyConnectedLayer::InferOutputShapes(), Layer::m_ShapeInferenceMethod, armnn::Specified, Layer::ValidateAndCopyShape(), and Layer::VerifyShapeInferenceType().