tf.Graph()
功能:生成新的计算图。
说明:不同计算图上的张量和运算都不会共享。
例子:
import tensorflow as tf
g1=tf.Graph()
#将g1设置为默认图,并返回一个上下文管理器
with g1.as_default():
# 在计算图g1中定义变量"a",并设置初始值=0
A=tf.get_variable("a",shape=[1],initializer=tf.zeros_initializer())
g2=tf.Graph()
#将g2设置为默认图,并返回一个上下文管理器
with g2.as_default():
# 在计算图g2中定义变量"a",并设置初始值=1
B=tf.get_variable("a",shape=[1],initializer=tf.ones_initializer())
#在计算图g1中读取变量"a"的取值
with tf.Session(graph=g1) as sess:
tf.global_variables_initializer().run()
with tf.variable_scope("",reuse=True):
print(sess.run(tf.get_variable("a")))
#在计算图g2中读取变量"a"的取值
with tf.Session(graph=g2) as sess:
tf.global_variables_initializer().run()
with tf.variable_scope("",reuse=True):
print(sess.run(tf.get_variable("a")))
#分别获取计算图g1、g2
print(A.graph)
print(B.graph)
结果:
[ 0.]
[ 1.]
tensorflow.python.framework.ops.Graph object at 0x000001C8BD483B38
tensorflow.python.framework.ops.Graph object at 0x000001C8BD572940
[注]:计算图结果每次都会随机分配,因此每次的结果都不会相同。