diff options
author | Matthew Sloyan <matthew.sloyan@arm.com> | 2021-07-13 19:46:11 +0100 |
---|---|---|
committer | Matthew Sloyan <matthew.sloyan@arm.com> | 2021-08-06 09:25:26 +0000 |
commit | 81beae3a870004795275e9266bc43d845b9f78db (patch) | |
tree | 70af86f3c36c8e330c72770e6f1419ca7b2a4bb8 /include | |
parent | 95e9efc28ce70a8cda93e722f5ce90ebc96bdd95 (diff) | |
download | armnn-81beae3a870004795275e9266bc43d845b9f78db.tar.gz |
IVGCVSW-6119 ConstTensorsAsInput: FullyConnected
* Constant weights and biases are now stored as Constant layers.
* Updated Serializer, Deserializer and unit tests to reflect this.
* Updated TfLiteDelegate, TfLiteParser and OnnxParser.
* Updated Schema with IsConstant and ConstantTensorsAsInputs.
* Updated Ref backend to handle constant weights and
bias as inputs rather than reading from member variables.
* Added dynamic or constant input EndToEnd tests.
!android-nn-driver:5959
Signed-off-by: Matthew Sloyan <matthew.sloyan@arm.com>
Change-Id: Ibf3cf437df1100e4b322b0d303c575c6339f9696
Diffstat (limited to 'include')
-rw-r--r-- | include/armnn/Descriptors.hpp | 2 | ||||
-rw-r--r-- | include/armnn/ILayerVisitor.hpp | 11 | ||||
-rw-r--r-- | include/armnn/INetwork.hpp | 20 | ||||
-rw-r--r-- | include/armnn/LayerVisitorBase.hpp | 4 |
4 files changed, 19 insertions, 18 deletions
diff --git a/include/armnn/Descriptors.hpp b/include/armnn/Descriptors.hpp index bcee902d75..7188a7bd3a 100644 --- a/include/armnn/Descriptors.hpp +++ b/include/armnn/Descriptors.hpp @@ -402,7 +402,7 @@ struct FullyConnectedDescriptor : BaseDescriptor } /// Get the number of views/inputs. - uint32_t GetNumViews() const; + uint32_t GetNumInputs() const; /// Enable/disable bias. bool m_BiasEnabled; diff --git a/include/armnn/ILayerVisitor.hpp b/include/armnn/ILayerVisitor.hpp index b5112a8f0b..f7c769fbe3 100644 --- a/include/armnn/ILayerVisitor.hpp +++ b/include/armnn/ILayerVisitor.hpp @@ -198,6 +198,16 @@ public: virtual void VisitFloorLayer(const IConnectableLayer* layer, const char* name = nullptr) = 0; + + /// Function that a fully connected layer should call back to when its Accept(ILayerVisitor&) + /// function is invoked. + /// @param layer - pointer to the layer which is calling back to this visit function. + /// @param fullyConnectedDescriptor - Description of the fully connected layer. + /// @param name - Optional name for the layer. + virtual void VisitFullyConnectedLayer(const IConnectableLayer* layer, + const FullyConnectedDescriptor& fullyConnectedDescriptor, + const char* name = nullptr) = 0; + /// Function that a fully connected layer should call back to when its Accept(ILayerVisitor&) /// function is invoked. /// @param layer - pointer to the layer which is calling back to this visit function. @@ -205,6 +215,7 @@ public: /// @param weights - Tensor for the weights data. /// @param biases - Optional tensor for the bias data. /// @param name - Optional name for the layer. + ARMNN_DEPRECATED_MSG("Use VisitFullyConnectedLayer without ConstTensors") virtual void VisitFullyConnectedLayer(const IConnectableLayer* layer, const FullyConnectedDescriptor& fullyConnectedDescriptor, const ConstTensor& weights, diff --git a/include/armnn/INetwork.hpp b/include/armnn/INetwork.hpp index 865d1291a9..48f407f2f9 100644 --- a/include/armnn/INetwork.hpp +++ b/include/armnn/INetwork.hpp @@ -301,37 +301,23 @@ public: IConnectableLayer* AddFillLayer(const FillDescriptor& fillDescriptor, const char* name = nullptr); - /// Adds a fully connected layer to the network. - /// @param fullyConnectedDescriptor - Description of the fully connected layer. - /// @param weights -Optional Tensor for the weights data. - /// @param biases - Optional tensor for the bias data. - /// @param name - Optional name for the layer. - /// @return - Interface for configuring the layer. - IConnectableLayer* AddFullyConnectedLayer(const FullyConnectedDescriptor& fullyConnectedDescriptor, - const Optional<ConstTensor>& weights, - const Optional<ConstTensor>& biases, - const char* name = nullptr); /// Adds a fully connected layer to the network. /// @param fullyConnectedDescriptor - Description of the fully connected layer. - /// @param weights - Tensor for the weights data. - /// @param biases - Optional tensor for the bias data. - /// @param name - Optional name for the layer. /// @return - Interface for configuring the layer. IConnectableLayer* AddFullyConnectedLayer(const FullyConnectedDescriptor& fullyConnectedDescriptor, - const ConstTensor& weights, - const Optional<ConstTensor>& biases, const char* name = nullptr); ARMNN_DEPRECATED_MSG("This AddFullyConnectedLayer overload is deprecated") IConnectableLayer* AddFullyConnectedLayer(const FullyConnectedDescriptor& fullyConnectedDescriptor, - const ConstTensor& weights, + const Optional<ConstTensor>& weights, + const Optional<ConstTensor>& biases, const char* name = nullptr); ARMNN_DEPRECATED_MSG("This AddFullyConnectedLayer overload is deprecated") IConnectableLayer* AddFullyConnectedLayer(const FullyConnectedDescriptor& fullyConnectedDescriptor, const ConstTensor& weights, - const ConstTensor& biases, + const Optional<ConstTensor>& biases, const char* name = nullptr); /// Adds a permute layer to the network. diff --git a/include/armnn/LayerVisitorBase.hpp b/include/armnn/LayerVisitorBase.hpp index fb88d559bb..d3378dccf5 100644 --- a/include/armnn/LayerVisitorBase.hpp +++ b/include/armnn/LayerVisitorBase.hpp @@ -110,6 +110,10 @@ public: void VisitFullyConnectedLayer(const IConnectableLayer*, const FullyConnectedDescriptor&, + const char*) override { DefaultPolicy::Apply(__func__); } + + void VisitFullyConnectedLayer(const IConnectableLayer*, + const FullyConnectedDescriptor&, const ConstTensor&, const Optional<ConstTensor>&, const char*) override { DefaultPolicy::Apply(__func__); } |