在 tensorflow 中关闭会话不会重置图形

新手上路,请多包涵

当前图中可用的节点数在每次迭代中不断增加。这似乎不直观,因为会话已关闭,并且它的所有资源都应该被释放。之前的节点在创建新session的时候还在徘徊是什么原因呢?这是我的代码:

 for i in range(3):
    var = tf.Variable(0)
    sess = tf.Session(config=tf.ConfigProto())
    with sess.as_default():
        tf.global_variables_initializer().run()
        print(len(sess.graph._nodes_by_name.keys()))
    sess.close()

它输出:

 5
10
15

原文由 titus 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 439
1 个回答

关闭会话不会按设计重置图形。如果你想重置图表,你可以像这样调用 tf.reset_default_graph()

 for _ in range(3):
    tf.reset_default_graph()
    var = tf.Variable(0)
    with tf.Session() as session:
        session.run(tf.global_variables_initializer())
        print(len(session.graph._nodes_by_name.keys()))

或者你可以做这样的事情

for _ in range(3):
    with tf.Graph().as_default() as graph:
        var = tf.Variable(0)
        with tf.Session() as session:
            session.run(tf.global_variables_initializer())
            print(len(graph._nodes_by_name.keys()))

原文由 Mad Wombat 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题