From f724b6418e7c6841ca681b8b30d02b69deee6b2d Mon Sep 17 00:00:00 2001
From: auphelia <jakobapk@web.de>
Date: Fri, 26 Jun 2020 15:29:16 +0100
Subject: [PATCH] [Streamline] Check for data layout is None in
 MoveTransposePastScalarMul

---
 src/finn/transformation/streamline/reorder.py | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/src/finn/transformation/streamline/reorder.py b/src/finn/transformation/streamline/reorder.py
index 748c7420a..d9f1f6a28 100644
--- a/src/finn/transformation/streamline/reorder.py
+++ b/src/finn/transformation/streamline/reorder.py
@@ -643,6 +643,12 @@ class MoveTransposePastScalarMul(Transformation):
                     transp_out_shape = model.get_tensor_shape(middle_name)
                     transp_in_layout = model.get_tensor_layout(start_name)
                     transp_out_layout = model.get_tensor_layout(middle_name)
+                    if transp_in_layout is None or transp_out_layout is None:
+                        warnings.warn(
+                            """Datalayout is not set for tensors.
+                            Transformation can't be applied."""
+                        )
+                        continue
                     if all(x == 1 for x in A.shape):
                         # if the mul is scalar, we can simply swap the order of ops
                         # rewire transpose input to be mul input
@@ -659,6 +665,8 @@ class MoveTransposePastScalarMul(Transformation):
                         graph.node.remove(transp_node)
                         graph.node.insert(node_ind, transp_node)
                         graph_modified = True
-        model = model.transform(InferDataLayouts())
-        model = model.transform(InferShapes())
+
+        if graph_modified is True:
+            model = model.transform(InferDataLayouts())
+            model = model.transform(InferShapes())
         return (model, graph_modified)
-- 
GitLab