aboutsummaryrefslogtreecommitdiffhomepage
path: root/tensorflow/go/graph.go
diff options
context:
space:
mode:
authorGravatar Jonathan Hseu <jhseu@google.com>2016-08-23 09:01:25 -0800
committerGravatar TensorFlower Gardener <gardener@tensorflow.org>2016-08-23 10:04:53 -0700
commit783c52edeb3c676937dbb97ed0d40958015050d6 (patch)
tree80c74954f68dad26a6e76a1c0edcb979d4d1804c /tensorflow/go/graph.go
parent096069687c52e16eaa18c1db6e7bbf2737639257 (diff)
Initial version of the Go API. The API is subject to change.
Remaining work to do: - Generated ops. - Generated protocol buffers. - A few calls requiring protocol buffers aren't in this change. Change: 131066649
Diffstat (limited to 'tensorflow/go/graph.go')
-rw-r--r--tensorflow/go/graph.go38
1 files changed, 38 insertions, 0 deletions
diff --git a/tensorflow/go/graph.go b/tensorflow/go/graph.go
new file mode 100644
index 0000000000..3e43a39817
--- /dev/null
+++ b/tensorflow/go/graph.go
@@ -0,0 +1,38 @@
+// Copyright 2016 The TensorFlow Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package tensorflow
+
+// #include "tensorflow/c/c_api.h"
+import "C"
+
+import (
+ "runtime"
+)
+
+// Graph represents a computation graph. Graphs may be shared between sessions.
+type Graph struct {
+ c *C.TF_Graph
+}
+
+// NewGraph returns a new Graph.
+func NewGraph() *Graph {
+ g := &Graph{C.TF_NewGraph()}
+ runtime.SetFinalizer(g, (*Graph).finalizer)
+ return g
+}
+
+func (g *Graph) finalizer() {
+ C.TF_DeleteGraph(g.c)
+}