aboutsummaryrefslogtreecommitdiff
path: root/ethosu/vela/graph_optimiser.py
diff options
context:
space:
mode:
authorFredrik Svedberg <fredrik.svedberg@arm.com>2020-09-29 10:00:39 +0200
committerpatrik.gustavsson <patrik.gustavsson@arm.com>2020-09-30 07:52:39 +0000
commit0f98b361288c71fca327969346db32de098c797b (patch)
tree8b2905a6e763832a0029179d655c481b14e0a8a1 /ethosu/vela/graph_optimiser.py
parent0265f402c7ae1e875470298b4130fcc2f7ab4e23 (diff)
downloadethos-u-vela-0f98b361288c71fca327969346db32de098c797b.tar.gz
[MLBEDSW-2802] Fix 5D tensor crash
Fixed crash in networks with 5D tensors. Fixed crash for (int32) tensors without quantization. Added validity checks for concatenation. Moved unfusing of activation function from tflite_reader to graph_optimiser. Signed-off-by: Fredrik Svedberg <fredrik.svedberg@arm.com> Change-Id: Ib9ba8891dc95ef5491e15d0feedef44331a26393
Diffstat (limited to 'ethosu/vela/graph_optimiser.py')
-rw-r--r--ethosu/vela/graph_optimiser.py15
1 files changed, 15 insertions, 0 deletions
diff --git a/ethosu/vela/graph_optimiser.py b/ethosu/vela/graph_optimiser.py
index 2bd57ddd..81d5a188 100644
--- a/ethosu/vela/graph_optimiser.py
+++ b/ethosu/vela/graph_optimiser.py
@@ -433,6 +433,20 @@ def fixup_pack_input(op, arch):
return op
+def unfuse_activation_function(op, arch):
+ unfuse_ops = ("ConcatTFLite",)
+ if op.type in unfuse_ops and op.run_on_npu and op.attrs.get("fused_activation_function", None) is not None:
+ act = op.attrs["fused_activation_function"]
+ del op.attrs["fused_activation_function"]
+ act_op = Operation(act, op.name + act)
+ out_tens = op.outputs[0]
+ intermediate_tens = out_tens.clone("_act_intermediate")
+ act_op.set_output_tensor(out_tens)
+ act_op.add_input_tensor(intermediate_tens)
+ op.set_output_tensor(intermediate_tens)
+
+ return op
+
def fixup_unpack_output(tens, arch):
op = tens.ops[0]
if op.type in set(("Unpack", "StridedSlice")):
@@ -1087,6 +1101,7 @@ def optimise_graph_a(nng, arch, verbose_graph=False):
fixup_fully_connected_input,
convert_batched_fc_to_conv,
fixup_pack_input,
+ unfuse_activation_function,
fixup_conv2d_backprop,
fixup_relus_with_differing_ifm_ofm_scaling,
fixup_act_reorder,