MLBEDSW-7077: Store original tensor shape in optimized file
- CPU side always needs to work we the original tensor shape.
Due to a bypass memory optimization the IFM, produced by CPU,
was stored with the wrong shape in the optimized file.
- Store the original tensor shape so it can be correctly
written to the optimized file.
Change-Id: I666dbcb0acd806ad208c0f925a51dfc25421688b
Signed-off-by: Johan Alfven <johan.alfven@arm.com>
diff --git a/ethosu/vela/tflite_writer.py b/ethosu/vela/tflite_writer.py
index ce53f9b..6fdfe01 100644
--- a/ethosu/vela/tflite_writer.py
+++ b/ethosu/vela/tflite_writer.py
@@ -26,6 +26,7 @@
from .operation import Op
from .reader_util import align_inputs_indices
from .tensor import MemType
+from .tensor import shape_num_elements
from .tensor import TensorPurpose
from .tflite import Buffer
from .tflite import Metadata
@@ -248,7 +249,12 @@
def serialise_tensor(self, tens):
builder = self.builder
- tens_shape = tens.shape
+ if shape_num_elements(tens.original_shape) != shape_num_elements(tens.shape):
+ # shapes have changed size, therefore assume that the latest (modified) shape is correct
+ tens_shape = tens.shape
+ else:
+ # shapes have not changed size, therefore the original shape is valid
+ tens_shape = tens.original_shape
values = tens.values
if values is None: