diff --git a/python_binding/graph/pybind_GraphView.cpp b/python_binding/graph/pybind_GraphView.cpp
index 953ec981e06e8c4050ca24143ff832e9f7112f70..d3ea0dd18b740395165002ce538b6de6b82a2df8 100644
--- a/python_binding/graph/pybind_GraphView.cpp
+++ b/python_binding/graph/pybind_GraphView.cpp
@@ -114,7 +114,7 @@ void init_GraphView(py::module& m) {
           :return: Whether any replacement has been made.
           :rtype: bool
           )mydelimiter")
-
+          .def("clone", &GraphView::clone)
           .def("get_nodes", &GraphView::getNodes)
           .def("get_node", &GraphView::getNode, py::arg("node_name"))
           .def("forward_dims", &GraphView::forwardDims, py::arg("dims")=std::vector<std::vector<DimSize_t>>())
diff --git a/python_binding/graph/pybind_Node.cpp b/python_binding/graph/pybind_Node.cpp
index 116b9dc404861bfba813c4961db8b6c457fae154..b22ebdd0f6cdb5bd738cd164b3fc2e9fe36d9987 100644
--- a/python_binding/graph/pybind_Node.cpp
+++ b/python_binding/graph/pybind_Node.cpp
@@ -28,7 +28,7 @@ void init_Node(py::module& m) {
     R"mydelimiter(
     Name of the Node.
     )mydelimiter")
-
+    .def("clone", (NodePtr (Node::*)() const) &Node::clone)
     .def("type", &Node::type,
     R"mydelimiter(
     Type of the node.