美文网首页我爱编程
[转载] TensorFlow函数:tf.Session()和t

[转载] TensorFlow函数:tf.Session()和t

作者: 听风1996 | 来源:发表于2018-05-08 15:24 被阅读2197次

    tf.Session():创建一个会话

       tf.Session().as_default():创建一个默认会话
    
       那么问题来了,会话和默认会话有什么区别呢?TensorFlow会自动生成一个默认的计算图,如果没有特殊指定,运算会自动加入这个计算图中。TensorFlow中的会话也有类似的机制,但是TensorFlow不会自动生成默认的会话,而是需要手动指定。
    
       tf.Session()创建一个会话,当上下文管理器退出时会话关闭和资源释放自动完成。
    
       tf.Session().as_default()创建一个默认会话,当上下文管理器退出时会话没有关闭,还可以通过调用会话进行run()和eval()操作,代码示例如下:
    
    tf.Session()代码示例:
    import tensorflow as tf
    a = tf.constant(1.0)
    b = tf.constant(2.0)
    with tf.Session() as sess:
       print(a.eval())   
    print(b.eval(session=sess))
    
    运行结果如下:
    1.0
    RuntimeError: Attempted to use a closed Session.
    

    在打印张量b的值时报错,报错为尝试使用一个已经关闭的会话。

    tf.Session().as_default()代码示例:

    import tensorflow as tf
    a = tf.constant(1.0)
    b = tf.constant(2.0)
    with tf.Session().as_default() as sess:
       print(a.eval())   
    print(b.eval(session=sess))
    
       运行结果如下:
    
    1.0
    2.0
    

    对于run()方法也是一样,如果想让默认会话在退出上下文管理器时关闭会话,可以调用sess.close()方法。

    代码示例如下:

    import tensorflow as tf
    a = tf.constant(1.0)
    b = tf.constant(2.0)
    with tf.Session().as_default() as sess:
       print(a.eval())  
       sess.close()
    print(b.eval(session=sess))
    
       运行结果如下:
    
    1.0
    RuntimeError: Attempted to use a closed Session.
    

    相关文章

      网友评论

        本文标题:[转载] TensorFlow函数:tf.Session()和t

        本文链接:https://www.haomeiwen.com/subject/pjqwrftx.html