由于你可以执行以下操作:
with tf.Session() as sess: # 在此处使用 sess.run() 运行内容
但也可以这样做:
init = tf.global_variables_initializer()sess = tf.Session()sess.run(init)sess.run(x)
我想知道是否可以对图的创建执行类似的操作,比如:
a_graph = tf.Graph()x = tf.placeholder(dtype=tf.float32, name='test')a_graph.add(x)
当然,传统上向图中添加节点/操作的方法是…
with a_graph.as_default(): x = tf.placeholder(dtype=tf.float32, name='test')
我在文档中没有找到相关信息… 而且 dir(a_graph)
也没有显示一个简单的 .add()
方法。我能想到的唯一方法是将一些操作添加到集合中… 但我不知道具体该怎么做。
回答:
总是可以手动进入/退出上下文管理器:
# 进入 `graph` 上下文cm = graph.as_default()cm.__enter__()print(tf.get_default_graph() == graph) # True# 现在所有节点都添加到 `graph` 中x = tf.placeholder(dtype=tf.float32, name='x')y = tf.placeholder(dtype=tf.float32, name='y')# 退出上下文cm.__exit__(None, None, None)
但我觉得使用 with
语句的版本看起来更简洁。