diff options
author | Ryan OShea <ryan.oshea3@arm.com> | 2021-11-18 16:52:41 +0000 |
---|---|---|
committer | TeresaARM <teresa.charlinreyes@arm.com> | 2021-11-26 10:27:39 +0000 |
commit | 09a052251b3c4c14c093e79d83c36504746890be (patch) | |
tree | db70f9e26250cf220db44265ec159878e53a1aa6 /python/pyarmnn | |
parent | e0d1fc5ad4f47bfdff2fe2f3fbcebf68669257dd (diff) | |
download | armnn-09a052251b3c4c14c093e79d83c36504746890be.tar.gz |
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 <ryan.oshea3@arm.com>
Change-Id: I2a8706052baf8f9c0038a5ea327d73b8f3ea1961
Diffstat (limited to 'python/pyarmnn')
-rw-r--r-- | python/pyarmnn/src/pyarmnn/__init__.py | 2 | ||||
-rw-r--r-- | python/pyarmnn/src/pyarmnn/swig/modules/armnn_descriptors.i | 22 | ||||
-rw-r--r-- | python/pyarmnn/src/pyarmnn/swig/modules/armnn_network.i | 13 | ||||
-rw-r--r-- | python/pyarmnn/test/test_descriptors.py | 7 | ||||
-rw-r--r-- | python/pyarmnn/test/test_network.py | 1 |
5 files changed, 45 insertions, 0 deletions
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 @@ -745,6 +745,28 @@ struct Pooling2dDescriptor %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<uint32_t> m_vAxis; + ReduceOperation m_ReduceOperation; + + bool operator ==(const ReduceDescriptor& rhs) const; +}; + +%feature("docstring", + " A descriptor for the Reshape layer. See `INetwork.AddReshapeLayer()`. Contains: 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", " diff --git a/python/pyarmnn/test/test_descriptors.py b/python/pyarmnn/test/test_descriptors.py index 80c5359eb2..262b8fcf2a 100644 --- a/python/pyarmnn/test/test_descriptors.py +++ b/python/pyarmnn/test/test_descriptors.py @@ -288,6 +288,11 @@ def test_reshape_descriptor_default_values(): # check the empty Targetshape assert desc.m_TargetShape.GetNumDimensions() == 0 +def test_reduce_descriptor_default_values(): + desc = ann.ReduceDescriptor() + assert desc.m_KeepDims == False + assert desc.m_vAxis == [] + assert desc.m_ReduceOperation == ann.ReduceOperation_Sum def test_slice_descriptor_default_values(): desc = ann.SliceDescriptor() @@ -517,6 +522,7 @@ generated_classes_names = list(map(lambda x: x[0], generated_classes)) 'InstanceNormalizationDescriptor', 'BatchToSpaceNdDescriptor', 'FakeQuantizationDescriptor', + 'ReduceDescriptor', 'ResizeDescriptor', 'ReshapeDescriptor', 'SpaceToBatchNdDescriptor', @@ -565,6 +571,7 @@ generated_classes_names = list(map(lambda x: x[0], generated_classes)) 'InstanceNormalizationDescriptor', 'BatchToSpaceNdDescriptor', 'FakeQuantizationDescriptor', + 'ReduceDescriptor', 'ResizeDescriptor', 'ReshapeDescriptor', 'SpaceToBatchNdDescriptor', diff --git a/python/pyarmnn/test/test_network.py b/python/pyarmnn/test/test_network.py index e33470e090..e56621a23b 100644 --- a/python/pyarmnn/test/test_network.py +++ b/python/pyarmnn/test/test_network.py @@ -229,6 +229,7 @@ def test_serialize_to_dot_mode_readonly(network_file, get_runtime, tmpdir): 'AddQuantizeLayer', 'AddQuantizedLstmLayer', 'AddRankLayer', + 'AddReduceLayer', 'AddReshapeLayer', 'AddResizeLayer', 'AddShapeLayer', |