首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >`sess.graph`和`tf.get_default_graph()`?

`sess.graph`和`tf.get_default_graph()`?
EN

Stack Overflow用户
提问于 2017-12-12 14:28:08
回答 1查看 7.6K关注 0票数 4

sess.graphtf.get_default_graph()在张应力板上给出了同样的结果。根据手册,我不太清楚他们之间有什么区别。有人能帮我解释一下差异吗?是否可以提供一个sess.graphtf.get_default_graph()不能互换使用的例子?

代码语言:javascript
复制
#!/usr/bin/env python
# vim: set noexpandtab tabstop=2 shiftwidth=2 softtabstop=-1 fileencoding=utf-8:

import tensorflow as tf
import sys

x = tf.Variable(1.0)
with tf.name_scope('ns_loss'):
    loss = tf.square(x)
with tf.name_scope('ns_adam'):
    train_op = tf.train.AdamOptimizer().minimize(loss)

init = tf.global_variables_initializer()

tf.summary.scalar('scalar_loss', loss)
merged_summary_op = tf.summary.merge_all()

with tf.Session() as sess:
    sess.run(init)
    summary_writer = tf.summary.FileWriter(logdir=sys.argv[1])
    summary_writer.add_graph(graph=tf.get_default_graph())
    #summary_writer.add_graph(graph=sess.graph)

    for i in xrange(100):
        sess.run(train_op)
        summary_writer.add_summary(
                summary = sess.run(merged_summary_op)
                , global_step = i
                )
EN

回答 1

Stack Overflow用户

发布于 2017-12-12 14:33:19

tf.get_default_graph()总是返回当前的计算图。例如,它是在会话开始之前就定义了xloss节点的图形。

使用tf.Session()创建会话时,可以选择指定要使用的非默认图形。在您的示例中,它没有被指定:

如果在构造会话时没有指定graph参数,则将在会话中启动默认图。

在一个脚本中有多个图是很有可能的,例如,当一个图从磁盘中恢复时。

还请注意,会话完成后,默认图仍然存在,因此它们的生存期不同。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47774994

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档