创建图对象
import tensorflow as tf
import numpy as np
a = tf.constant(123)
print(a.graph)
print(tf.get_default_graph())
<tensorflow.python.framework.ops.Graph object at 0x7f46885216d8>
<tensorflow.python.framework.ops.Graph object at 0x7f46885216d8>
当tensorflow库被加载时,即使用户没有显示地创建一个图,他也会自动创建一个图对象,并将其作为默认的额数据流图。
创建显示图
import tensorflow as tf
import numpy as np
g= tf.Graph() #创建了一个图对象g
with g.as_default(): # 将g设置为默认图像
a = tf.constant(123)
print(a.graph)
print(tf.get_default_graph())
<tensorflow.python.framework.ops.Graph object at 0x7f466363b2e8>
<tensorflow.python.framework.ops.Graph object at 0x7f466363b2e8>
as_default()
:返回一个上下文管理器,使得当前图对象称为当前默认图对象;在一个进程中创建多个人图对象时(图对象互不依赖),非常有用。
get_default_graph()
:获取当前图对象的句柄(某个事务的唯一标识)。
创建多个图
import tensorflow as tf
import numpy as np
g1 = tf.Graph()
g2 = tf.Graph()
with g1.as_default():
a = tf.constant(123)
print(a.graph)
print(tf.get_default_graph())
with g2.as_default():
b = tf.multiply(2, 3)
print(b.graph)
print(tf.get_default_graph())
<tensorflow.python.framework.ops.Graph object at 0x7f466363b630>
<tensorflow.python.framework.ops.Graph object at 0x7f466363b630>
<tensorflow.python.framework.ops.Graph object at 0x7f4688609b00>
<tensorflow.python.framework.ops.Graph object at 0x7f4688609b00>
Tensor 对象 a 和 b 所属的图已不再一样,随着as_default()
的值变化而变化。