我尝试通过以下方式从不同的 session 创建图表:
sess1 = tf.Session()
print(sess1)
print(sess1.graph)
sess2 = tf.Session()
print(sess2)
print(sess2.graph)
sess3 = tf.Session()
print(sess3)
print(sess3.graph)
结果是
<tensorflow.python.client.session.Session object at 0x14305b2b0>
<tensorflow.python.framework.ops.Graph object at 0x14305ba20>
<tensorflow.python.client.session.Session object at 0x14305b9b0>
<tensorflow.python.framework.ops.Graph object at 0x14305ba20>
<tensorflow.python.client.session.Session object at 0x14305b908>
<tensorflow.python.framework.ops.Graph object at 0x14305ba20>
我不明白,因为我预计不同的 session 会有不同的图形,但在这种情况下,不同的 session 共享相同的图形对象...?
有没有办法解决这个问题?
谢谢。
根据documentation :
If no graph argument is specified when constructing the session, the default graph will be launched in the session.
这就是为什么您会在不同的 session 中获得相同的图表。要解决它,您可以在创建 session 时简单地提供一个图表:
sess1 = tf.Session(graph=tf.Graph())
print(sess1)
print(sess1.graph)
sess2 = tf.Session(graph=tf.Graph())
print(sess2)
print(sess2.graph)
sess3 = tf.Session(graph=tf.Graph())
print(sess3)
print(sess3.graph)
结果是:
<tensorflow.python.client.session.Session object at 0x10589c9d0>
<tensorflow.python.framework.ops.Graph object at 0x104729d10>
<tensorflow.python.client.session.Session object at 0x114d0afd0>
<tensorflow.python.framework.ops.Graph object at 0x114cf8c50>
<tensorflow.python.client.session.Session object at 0x114d0ae50>
<tensorflow.python.framework.ops.Graph object at 0x114d0af90>
我是一名优秀的程序员,十分优秀!