diff options
author | Mike Kelly <mike.kelly@arm.com> | 2023-07-24 17:42:47 +0100 |
---|---|---|
committer | Mike Kelly <mike.kelly@arm.com> | 2023-07-24 22:50:25 +0100 |
commit | a638f101bcb51008932f922fe0a5cef28633bc66 (patch) | |
tree | 6ed41740cfc520b4ddf27160390928db07fc322a | |
parent | cd7ce20a7667a7402f65cfa44bc885e5ada515a8 (diff) | |
download | armnn-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.cpp | 5 | ||||
-rw-r--r-- | src/backends/neon/NeonBackend.cpp | 5 |
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; } |