diff --git a/ethosu/vela/graph_optimiser.py b/ethosu/vela/graph_optimiser.py
index 99d4bf0..f4472f9 100644
--- a/ethosu/vela/graph_optimiser.py
+++ b/ethosu/vela/graph_optimiser.py
@@ -1680,7 +1680,7 @@
 
 def optimise_graph_a(nng, arch, verbose_graph=False):
     if verbose_graph:
-        nng.print_graph()
+        nng.print_graph("Before Graph Optimization")
 
     pre_process_list = [
         supported_operator_check,
@@ -1783,5 +1783,5 @@
         rewrite_graph.visit_graph_post_order(sg.output_tensors, arch, [], [check_reshapes, _record_optimised])
 
     if verbose_graph:
-        nng.print_graph()
+        nng.print_graph("After Graph Optimization")
     return nng
diff --git a/ethosu/vela/insert_dma.py b/ethosu/vela/insert_dma.py
index 3797f43..bbe18f7 100644
--- a/ethosu/vela/insert_dma.py
+++ b/ethosu/vela/insert_dma.py
@@ -106,5 +106,5 @@
     for idx, sg in enumerate(nng.subgraphs):
         nng.subgraphs[idx] = rewrite_graph.rewrite_graph_pre_order(nng, sg, arch, [], [insert_dma_cmd])
     if verbose_graph:
-        nng.print_graph()
+        nng.print_graph("After DMA insertion")
     return nng
diff --git a/ethosu/vela/nn_graph.py b/ethosu/vela/nn_graph.py
index 677a385..adc7904 100644
--- a/ethosu/vela/nn_graph.py
+++ b/ethosu/vela/nn_graph.py
@@ -359,7 +359,9 @@
                     s += "->" + str(dstt)[9:-2]
                 print(s + " " + str(a))
 
-    def print_graph(self):
+    def print_graph(self, label=None):
+        if label:
+            print(f"\n[ {label} ]")
         print("print_graph()", self.name)
         all_ops = self.get_all_ops()
         for idx, op in enumerate(all_ops):
@@ -541,9 +543,9 @@
         for sg in self.subgraphs:
             sg.print_operators()
 
-    def print_graph(self):
+    def print_graph(self, label=None):
         for sg in self.subgraphs:
-            sg.print_graph()
+            sg.print_graph(label)
 
     def print_graph_with_tensors(self):
         for sg in self.subgraphs:
