diff --git a/src/armnn/Network.cpp b/src/armnn/Network.cpp
index b1cb5a8..573f6a1 100644
--- a/src/armnn/Network.cpp
+++ b/src/armnn/Network.cpp
@@ -22,6 +22,8 @@
 #include <armnn/TypesUtils.hpp>
 #include <armnn/BackendRegistry.hpp>
 
+#include <ProfilingService.hpp>
+
 #include <fcntl.h>
 #include <algorithm>
 #include <fstream>
@@ -53,12 +55,6 @@
     delete boost::polymorphic_downcast<Network*>(network);
 }
 
-Status Network::PrintGraph()
-{
-    m_Graph->Print();
-    return Status::Success;
-}
-
 void IOptimizedNetwork::Destroy(IOptimizedNetwork* network)
 {
     delete boost::polymorphic_downcast<OptimizedNetwork*>(network);
@@ -925,7 +921,8 @@
 }
 
 Network::Network()
-: m_Graph(std::make_unique<Graph>())
+: m_Graph(std::make_unique<Graph>()),
+  m_Guid(profiling::ProfilingService::Instance().NextGuid())
 {
 }
 
@@ -933,6 +930,12 @@
 {
 }
 
+Status Network::PrintGraph()
+{
+    m_Graph->Print();
+    return Status::Success;
+}
+
 IConnectableLayer* Network::AddInputLayer(LayerBindingId id, const char* name)
 {
     return m_Graph->AddLayer<InputLayer>(id, name);
@@ -1563,7 +1566,8 @@
 }
 
 OptimizedNetwork::OptimizedNetwork(std::unique_ptr<Graph> graph)
-    : m_Graph(std::move(graph))
+    : m_Graph(std::move(graph)),
+      m_Guid(profiling::ProfilingService::Instance().NextGuid())
 {
 }
 
diff --git a/src/armnn/Network.hpp b/src/armnn/Network.hpp
index 49cf4da..0a11941 100644
--- a/src/armnn/Network.hpp
+++ b/src/armnn/Network.hpp
@@ -34,6 +34,8 @@
 
     Status PrintGraph() override;
 
+    profiling::ProfilingGuid GetGuid() const final { return m_Guid; };
+
     IConnectableLayer* AddInputLayer(LayerBindingId id, const char* name=nullptr) override;
 
     IConnectableLayer* AddArgMinMaxLayer(const ArgMinMaxDescriptor& desc,
@@ -248,6 +250,7 @@
         const char* name);
 
     std::unique_ptr<Graph> m_Graph;
+    profiling::ProfilingGuid m_Guid;
 };
 
 class OptimizedNetwork final : public IOptimizedNetwork
@@ -259,10 +262,13 @@
     Status PrintGraph() override;
     Status SerializeToDot(std::ostream& stream) const override;
 
+    profiling::ProfilingGuid GetGuid() const final { return m_Guid; };
+
     Graph& GetGraph() { return *m_Graph; }
 
 private:
     std::unique_ptr<Graph> m_Graph;
+    profiling::ProfilingGuid m_Guid;
 };
 
 
