diff --git a/src/finn/transformation/streamline/reorder.py b/src/finn/transformation/streamline/reorder.py index 748c7420a8abf0047f1b2bd059d8ca6622e12bce..d9f1f6a28d3c277de7d89df987e837a3753f160c 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)