From 51a8dce2c709b6d0f5c1775d8beea27028ed819a Mon Sep 17 00:00:00 2001 From: Tim Hall Date: Mon, 20 Dec 2021 16:49:27 +0000 Subject: MLBEDSW-5844: Inconsistent calculation of read shapes - This bug causes a regression in the use of unpack and split operators - The bug is due to the read_shapes attribute being an absolute calculation for slice and strided_slice, but a relative one for unpack and split - The fix is to consistently treat the attribute as a shape relative to the read_offset Signed-off-by: Tim Hall Change-Id: I4504b161be507ea22ca6ee40fbe7808bfe049405 --- ethosu/vela/tflite_graph_optimiser.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'ethosu/vela/tflite_graph_optimiser.py') diff --git a/ethosu/vela/tflite_graph_optimiser.py b/ethosu/vela/tflite_graph_optimiser.py index 7b10f86a..8cfc3734 100644 --- a/ethosu/vela/tflite_graph_optimiser.py +++ b/ethosu/vela/tflite_graph_optimiser.py @@ -146,7 +146,11 @@ def rewrite_split_ops(tens, arch, nng): new_op = Operation(Op.SplitSliceRead, split_op.name) new_op.inputs = [inp] ofm_shape_idx = 0 - read_shape = offset_end + if None in (offset_end, offset_start): + read_shape = None + else: + # the read shape is relative to each start offset + read_shape = [oe - os for oe, os in zip(offset_end, offset_start)] # For Split the offset cannot be extracted from the tensor so it has to # be calculated from the index of the output tensor -- cgit v1.2.1