From 7d66a8e3f603f2cd363f04a750847e3f9eabdfd4 Mon Sep 17 00:00:00 2001 From: Georgios Pinitas Date: Tue, 17 Jul 2018 12:28:42 +0100 Subject: COMPMID-1386: Add support for converting weights for CL. Change-Id: I62e3ead903366baeeb1488f233a9b8b0c388c9de Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/140403 Tested-by: Jenkins Reviewed-by: Giorgio Arena Reviewed-by: Anthony Barbier --- arm_compute/graph/backends/FunctionHelpers.h | 3 ++- arm_compute/graph/nodes/FullyConnectedLayerNode.h | 11 +++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) (limited to 'arm_compute/graph') diff --git a/arm_compute/graph/backends/FunctionHelpers.h b/arm_compute/graph/backends/FunctionHelpers.h index 16536bcb65..978d3bc1a8 100644 --- a/arm_compute/graph/backends/FunctionHelpers.h +++ b/arm_compute/graph/backends/FunctionHelpers.h @@ -524,10 +524,11 @@ std::unique_ptr create_fully_connected_layer(FullyConnectedLayerNode typename TargetInfo::TensorType *weights = get_backing_tensor(node.input(1)); typename TargetInfo::TensorType *biases = get_backing_tensor(node.input(2)); typename TargetInfo::TensorType *output = get_backing_tensor(node.output(0)); + const FullyConnectedLayerInfo fc_info = node.info(); // Create and configure function auto func = support::cpp14::make_unique(get_memory_manager(ctx, TargetInfo::TargetType)); - func->configure(input, weights, biases, output); + func->configure(input, weights, biases, output, fc_info); ARM_COMPUTE_ERROR_ON(input == nullptr); ARM_COMPUTE_ERROR_ON(weights == nullptr); ARM_COMPUTE_ERROR_ON(output == nullptr); diff --git a/arm_compute/graph/nodes/FullyConnectedLayerNode.h b/arm_compute/graph/nodes/FullyConnectedLayerNode.h index 3d1b68909a..79201c8bdc 100644 --- a/arm_compute/graph/nodes/FullyConnectedLayerNode.h +++ b/arm_compute/graph/nodes/FullyConnectedLayerNode.h @@ -37,8 +37,9 @@ public: /** Constructor * * @param[in] num_outputs Number of neurons in the layer + * @param[in] fc_info (Optional) Additional information about the fully connected layer */ - FullyConnectedLayerNode(unsigned int num_outputs); + FullyConnectedLayerNode(unsigned int num_outputs, FullyConnectedLayerInfo fc_info = FullyConnectedLayerInfo()); /** Computes weights descriptor * * @warning Works for inputs with 1D batch space @@ -59,6 +60,11 @@ public: * @return Output descriptor */ static TensorDescriptor compute_output_descriptor(const TensorDescriptor &input_descriptor, unsigned int num_outputs); + /** Fully connected layer addition information + * + * @return Additional information about the fully connected layer + */ + FullyConnectedLayerInfo info() const; // Inherited overridden methods: NodeType type() const override; @@ -67,7 +73,8 @@ public: void accept(INodeVisitor &v) override; private: - unsigned int _num_outputs; + unsigned int _num_outputs; + FullyConnectedLayerInfo _info; }; } // namespace graph } // namespace arm_compute -- cgit v1.2.1