Skip to main content
 首页 » 编程设计

python之在同一线程下的tensorflow中创建多个图

2024年12月31日28birdshome

我尝试通过以下方式从不同的 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>