Skip the NOP resizebilinear op
Signed-off-by: Charles Xu <charles.xu@arm.com>
Change-Id: Ibd0cd152fbc46dea0c92fd1bf7da1ffc9803fdba
diff --git a/ethosu/vela/graph_optimiser.py b/ethosu/vela/graph_optimiser.py
index 9c6e1f5..a9d5cce 100644
--- a/ethosu/vela/graph_optimiser.py
+++ b/ethosu/vela/graph_optimiser.py
@@ -212,6 +212,10 @@
if op.type == "ResizeBilinear":
if op.inputs[0].shape[1] == 1 and op.inputs[0].shape[2] == 1:
convert_resizebilinear_1x1_to_add(op)
+ elif op.inputs[0].shape == op.outputs[0].shape:
+ # Bypass nop resizebilinear
+ op.inputs = op.inputs[:1]
+ op.type = "Identity"
return op
diff --git a/ethosu/vela/supported_operators.py b/ethosu/vela/supported_operators.py
index 73e219b..b585323 100644
--- a/ethosu/vela/supported_operators.py
+++ b/ethosu/vela/supported_operators.py
@@ -267,6 +267,8 @@
if op.type == "ResizeBilinear":
if op.inputs[0].shape[1] == 1 and op.inputs[0].shape[2] == 1:
return True
+ if op.inputs[0].shape == op.outputs[0].shape:
+ return True
upscaled_shape = [op.inputs[0].shape[1] * 2, op.inputs[0].shape[2] * 2]
out_shape = op.outputs[0].shape[1:3]
if not op.attrs["align_corners"] and out_shape != upscaled_shape: