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>
diff --git a/src/armnn/layers/SplitterLayer.cpp b/src/armnn/layers/SplitterLayer.cpp
index 2e75139..f8a2ae0 100644
--- a/src/armnn/layers/SplitterLayer.cpp
+++ b/src/armnn/layers/SplitterLayer.cpp
@@ -130,14 +130,11 @@
// 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 5fd1202..3a398e0 100644
--- a/src/backends/neon/NeonBackend.cpp
+++ b/src/backends/neon/NeonBackend.cpp
@@ -516,9 +516,8 @@
{
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;
}