aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Kelly <mike.kelly@arm.com>2023-07-24 17:42:47 +0100
committerMike Kelly <mike.kelly@arm.com>2023-07-24 22:50:25 +0100
commita638f101bcb51008932f922fe0a5cef28633bc66 (patch)
tree6ed41740cfc520b4ddf27160390928db07fc322a
parentcd7ce20a7667a7402f65cfa44bc885e5ada515a8 (diff)
downloadarmnn-a638f101bcb51008932f922fe0a5cef28633bc66.tar.gz
IVGCVSW-7907 Model cannot use Subtensors
* On Neon we cannot remove a Reshape if it's connected to a SplitterLayer. * Removed clause 5 in SplitterLayer which could erroneously prevent the use of Subtensors in certain circumstances. Signed-off-by: Mike Kelly <mike.kelly@arm.com> Change-Id: I437eb5d3ede25329a4d11d12c3fb1aec2e76efb6 Signed-off-by: Mike Kelly <mike.kelly@arm.com>
-rw-r--r--src/armnn/layers/SplitterLayer.cpp5
-rw-r--r--src/backends/neon/NeonBackend.cpp5
2 files changed, 3 insertions, 7 deletions
diff --git a/src/armnn/layers/SplitterLayer.cpp b/src/armnn/layers/SplitterLayer.cpp
index 2e75139fb4..f8a2ae0e62 100644
--- a/src/armnn/layers/SplitterLayer.cpp
+++ b/src/armnn/layers/SplitterLayer.cpp
@@ -130,14 +130,11 @@ void SplitterLayer::CreateTensors(const TensorHandleFactoryRegistry& registry,
// 2) the same TensorHandleFactory is used for input and split layer output
// 3) the output does not go to a Constant layer or input layer
// 4) if split along x or y (2 innermost dimensions) and the next layers do not require padding
- // 5) neither the input nor the outputs have an Overridden TensorInfo
if (parentInfo.IsTypeSpaceMatch(info) && //(1)
factoryId == slot->GetTensorHandleFactoryId() && //(2)
GetOutputSlot(i).GetConnection(0)->GetOwningLayer().GetType() != LayerType::Constant && //(3)
GetOutputSlot(i).GetConnection(0)->GetOwningLayer().GetType() != LayerType::Input && //(3)
- canUseSubTensorOnXorY && //(4)
- !GetOutputSlot(i).GetConnection(0)->IsTensorInfoOverridden() && //(5)
- !GetInputSlot(0).IsTensorInfoOverridden()) //(5)
+ canUseSubTensorOnXorY) //(4)
{
ARMNN_NO_DEPRECATE_WARN_BEGIN
return factory.CreateSubTensorHandle(*inputData,
diff --git a/src/backends/neon/NeonBackend.cpp b/src/backends/neon/NeonBackend.cpp
index 5fd1202659..3a398e03e6 100644
--- a/src/backends/neon/NeonBackend.cpp
+++ b/src/backends/neon/NeonBackend.cpp
@@ -516,9 +516,8 @@ OptimizationViews NeonBackend::OptimizeSubgraphView(const SubgraphView& subgraph
{
continue;
}
- // Cannot remove a Reshape if it's connected to a SplitterLayer through a Tensor that has more than
- // 4 dimensions
- if (ConnectedToLayerType(baseLayer, LayerType::Splitter, 4))
+ // Cannot remove a Reshape if it's connected to a SplitterLayer
+ if (ConnectedToLayerType(baseLayer, LayerType::Splitter))
{
continue;
}