Tensorflow Graph

Submitted by Lizhe on Wed, 08/16/2017 - 18:08

要创建Graph对象需要使用下面的语句

g1 = tf.Graph()
g2 = tf.Graph()

然后使用来使用这个g1对象的上下文

with g1.as_default():

    ....

不过你可能会奇怪为什么之前我们没有创建过这个对象

当TensorFlow库被加载时, 它会自动创建一个Graph对象,并将其作为默认的数据流图

因此, 在Graph.as_default() 上下文管理器 (例如 g1.as_default())之外定义的任何Op和Tensor对象都会自动被放置在这个默认的Graph中

注意不要在代码中混用 显示的声明with 和 默认数据流图, 这不会影响运行, 但是会影响代码阅读

下面是错误的实践

a = tf.constant(1)

with g1.as_default():

    b = tf.constant(2)

正确的做法应该是

下面是正确的实践

g1 = tf.Graph()

g2 = tf.get_default_graph()

with g1.as_default():

    a = tf.constant(1)

with g2.as_default():

    b = tf.constant(2)

或者不要使用默认的graph