python代码
#coding=utf-8
import tensorflow as tf
# 在图1中初始化v=0
g1 = tf.Graph()
with g1.as_default():
v = tf.get_variable("v", initializer=tf.zeros_initializer, shape=[1])
# 在图2中初始化v=1
g2 = tf.Graph()
with g2.as_default():
v = tf.get_variable("v", initializer=tf.ones_initializer, shape=[1])
# 输出0.
with tf.Session(graph=g1) as sess:
sess.run(tf.global_variables_initializer())
with tf.variable_scope("", reuse=True):
print(sess.run(tf.get_variable("v")))
# 输出1.
with tf.Session(graph=g2) as sess:
sess.run(tf.global_variables_initializer())
with tf.variable_scope("", reuse=True):
print(sess.run(tf.get_variable("v")))
# 指定设备运行
a = tf.constant([1.0,2.0], name="a")
b = tf.constant([2.0,3.0], name="b")
# 变量没有指定图,所以属于默认的计算图
print(a.graph is tf.get_default_graph())
g = tf.Graph()
with g.device("/gpu:0"):
result = a + b
# 这里不指定graph, 使用默认的图
with tf.Session() as sess:
print(sess.run(result))
运行结果如下:
[0.]
[1.]
True
[3. 5.]
可以看到当运行不同的计算图时,变量v的值是不一样的。另外通过tf.Graph.device函数来指定运行的设备,这为TensorFlow使用GPU提供了机制。