diff options
Diffstat (limited to 'src/backends/cl/ClBackend.cpp')
-rw-r--r-- | src/backends/cl/ClBackend.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/backends/cl/ClBackend.cpp b/src/backends/cl/ClBackend.cpp index 1d8ae21e5d..6d191a594b 100644 --- a/src/backends/cl/ClBackend.cpp +++ b/src/backends/cl/ClBackend.cpp @@ -673,6 +673,19 @@ OptimizationViews ClBackend::OptimizeSubgraphView(const SubgraphView& subgraph, } } + // Remove Reshape where possible + if (base.GetType() == LayerType::Reshape) + { + ReshapeLayer* baseLayer = PolymorphicDowncast<ReshapeLayer*>(&base); + + // Cannot remove a Reshape if it's connected to any layer that has an NCHW layout + if (ConnectedToLayerWithNCHW(baseLayer)) + { + continue; + } + RemoveReshapeLayer(baseLayer, untouched, optimizationViews); + } + // Special case to fuse padding into average pooling 2d for quantized datatype. // Required to be done as a backend specific optimization as Neon does not support this special case. if (base.GetType() == LayerType::Pooling2d) |