代码之家  ›  专栏  ›  技术社区  ›  Xitrum

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

  •  2
  • Xitrum  · 技术社区  · 7 年前

    我尝试通过以下方式从不同会话创建图表:

    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>
    

    我不明白,因为我期望不同的会话会有不同的图形,但在本例中,不同的会话共享相同的图形对象?

    有办法解决这个问题吗?

    非常感谢。

    1 回复  |  直到 7 年前
        1
  •  2
  •   zohar.kom    7 年前

    根据 documentation :

    如果在构造会话时未指定图形参数,则

    这就是为什么不同的会话会得到相同的图表。要解决这个问题,您只需在创建会话时提供一个图表:

    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>
    
    推荐文章