【问题标题】:confusion in different ways to open a session and executing the graph in tensorflow以不同方式打开会话并在 tensorflow 中执行图形的混淆
【发布时间】:2018-08-14 13:44:53
【问题描述】:

我正在尝试使用 TensorFlow 学习深度学习,请原谅我的愚蠢问题。我一直在阅读不同的教程,如“https://github.com/Hvass-Labs/TensorFlow-Tutorials”和“https://github.com/u04617/deeplearning/blob/master/mnist_experiments.ipynb” 不幸的是,我对他们写作的一些差异感到困惑。更具体地说,我有一个关于打开会话的问题:

1) 有什么区别

session = tf.Session()
session.run(tf.global_variables_initializer())
session.run(optimizer, feed_dict=feed_dict_train)

sess = tf.InteractiveSession()
tf.initialize_all_variables().run()
optimizer.run({x: batch_xs, y_: batch_ys, keep_prob: 0.5})

确实,我理解每一行背后的基本思想(打开一个会话来执行图形,初始化变量 图表并最终执行字典中给出的图表所需的输入),但我不明白与上面两个代码的区别,尤其是最后一行。

【问题讨论】:

    标签: session tensorflow neural-network


    【解决方案1】:

    两者都在工作。

    • 在 Jupyter Notebook 文件中:使用 InteractiveSession

    阅读here 以了解InactiveSessionSession 之间的区别。 但不要尝试eval()。请帮自己一个忙,使用唯一正确和干净的方式:

    init_op = tf.global_variables_initializer()
    
    tf.get_default_graph().finalize()
    with tf.Session() as session:
      session.run(init_op)
      session.run(optimizer, feed_dict=feed_dict_train)
    

    operation.run()tensor.eval()的方式在互联网某处传播。但是有很多警告:

    这里有两个:

    Tensorflow subtract strange result

    Official ZeroOut gradient example error: AttributeError: 'list' object has no attribute 'eval'

    我希望他们会在某个时候弃用 `eval()。

    【讨论】:

    • 非常感谢 Patwie 的有用回答!你有没有详细说明为什么我应该使用 InteractiveSession()?另外,你建议的正确方式没有这个 InteractiveSession(),所以它并不意味着是 jupyternotebook 中最正确的方式?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-23
    相关资源
    最近更新 更多