From 09a052251b3c4c14c093e79d83c36504746890be Mon Sep 17 00:00:00 2001 From: Ryan OShea Date: Thu, 18 Nov 2021 16:52:41 +0000 Subject: IVGCVSW-6589 AddReduceLayer to PyArmNN * AddReduceLayer to PyArmNN armnn_network.i * AddReduceDescriptor to PyArmNN armnn_descriptors.i * Add layer to test_network.py * Add descriptor unit tests to test_descriptors.py Signed-off-by: Ryan OShea Change-Id: I2a8706052baf8f9c0038a5ea327d73b8f3ea1961 --- python/pyarmnn/src/pyarmnn/__init__.py | 2 ++ .../src/pyarmnn/swig/modules/armnn_descriptors.i | 22 ++++++++++++++++++++++ .../src/pyarmnn/swig/modules/armnn_network.i | 13 +++++++++++++ 3 files changed, 37 insertions(+) (limited to 'python/pyarmnn/src') diff --git a/python/pyarmnn/src/pyarmnn/__init__.py b/python/pyarmnn/src/pyarmnn/__init__.py index b71fc3632b..5f95cb0725 100644 --- a/python/pyarmnn/src/pyarmnn/__init__.py +++ b/python/pyarmnn/src/pyarmnn/__init__.py @@ -97,6 +97,8 @@ from ._generated.pyarmnn import PermutationVector, PermuteDescriptor from ._generated.pyarmnn import OutputShapeRounding_Ceiling, OutputShapeRounding_Floor, \ PaddingMethod_Exclude, PaddingMethod_IgnoreValue, PoolingAlgorithm_Average, PoolingAlgorithm_L2, \ PoolingAlgorithm_Max, Pooling2dDescriptor +from ._generated.pyarmnn import ReduceDescriptor, ReduceOperation_Prod, ReduceOperation_Max, ReduceOperation_Mean, \ + ReduceOperation_Min, ReduceOperation_Sum from ._generated.pyarmnn import ResizeMethod_Bilinear, ResizeMethod_NearestNeighbor, ResizeDescriptor, \ ReshapeDescriptor, SliceDescriptor, SpaceToBatchNdDescriptor, SpaceToDepthDescriptor, StandInDescriptor, \ StackDescriptor, StridedSliceDescriptor, SoftmaxDescriptor, TransposeConvolution2dDescriptor, \ diff --git a/python/pyarmnn/src/pyarmnn/swig/modules/armnn_descriptors.i b/python/pyarmnn/src/pyarmnn/swig/modules/armnn_descriptors.i index d20796a88e..733002318d 100644 --- a/python/pyarmnn/src/pyarmnn/swig/modules/armnn_descriptors.i +++ b/python/pyarmnn/src/pyarmnn/swig/modules/armnn_descriptors.i @@ -743,6 +743,28 @@ struct Pooling2dDescriptor bool operator ==(const Pooling2dDescriptor& rhs) const; }; +%feature("docstring", + " + A ReduceDescriptor for the REDUCE operators. + + Contains: + m_KeepDims(bool): If true then output shape has no change. + m_vAxis (list of int): The indices of the dimensions to reduce. + m_ReduceOperation (int): Specifies the reduction operation to execute ('ReduceOperation_Sum', + 'ReduceOperation_Max', 'ReduceOperation_Mean', 'ReduceOperation_Min', + 'ReduceOperation_Prod'). Default: 0 ('ReduceOperation_Sum'). + ") ReduceDescriptor; +struct ReduceDescriptor +{ + ReduceDescriptor(); + + bool m_KeepDims; + std::vector m_vAxis; + ReduceOperation m_ReduceOperation; + + bool operator ==(const ReduceDescriptor& rhs) const; +}; + %feature("docstring", " A descriptor for the Reshape layer. See `INetwork.AddReshapeLayer()`. diff --git a/python/pyarmnn/src/pyarmnn/swig/modules/armnn_network.i b/python/pyarmnn/src/pyarmnn/swig/modules/armnn_network.i index 789e428e46..643f99f53a 100644 --- a/python/pyarmnn/src/pyarmnn/swig/modules/armnn_network.i +++ b/python/pyarmnn/src/pyarmnn/swig/modules/armnn_network.i @@ -856,6 +856,19 @@ public: ") AddRankLayer; armnn::IConnectableLayer* AddRankLayer(const char* name = nullptr); + %feature("docstring", + " + Adds a Reduce layer to the network. + + Args: + reduceDescriptor (ReduceDescriptor): Parameters for the reduce operation. + name (str): Optional name for the layer. + + Returns: + IConnectableLayer: Interface for configuring the layer. + ") AddReduceLayer; + armnn::IConnectableLayer* AddReduceLayer(const armnn::ReduceDescriptor& reduceDescriptor, + const char* name = nullptr); %feature("docstring", " -- cgit v1.2.1