Session对话
一、session的第一种模式:
import tensorflow as tf
# 定义一个计算图
tens1 = tf.constant([1, 2, 3])
# 创建一个会话
sess = tf.Session()
# 我们通过使用这个对话来实现计算图的计算
print(sess.run(tens1))
# 最后要关闭这个对话
sess.close()
升级一下代码:
import tensorflow as tf
# 定义一个计算图
tens1 = tf.constant([1, 2, 3])
# 创建一个会话
sess = tf.Session()
try:
# 我们通过使用这个对话来实现计算图的计算
print(sess.run(tens1))
except:
print("发生异常")
finally:
# 最后要关闭这个对话
sess.close()
二、Session的第二种模式
import tensorflow as tf
# 一个简单的计算图
node1 = tf.constant(3.0, tf.float32, name="node1")
node2 = tf.constant(4.0, tf.float32, name="node1")
result = tf.add(node1, node2)
# 创建一个会话,并通过python的上下文管理器来管理这个会话
with tf.Session() as sess:
print(sess.run(result))
# 此时不需要调用sess.close()函数来结束会话
# 会话会随着上下文管理器的的关闭而自动释放
我们第二种模式是通过python的上下文管理器来创建管理这个会话session,此时是不需要手写来关闭这个session,因为它会随着上下文管理器的关闭而自动结束并且自动释放资源。
三、指定默认会话
import tensorflow as tf
# 一个简单的计算图
node1 = tf.constant(3.0, tf.float32, name="node1")
node2 = tf.constant(4.0, tf.float32, name="node1")
result = tf.add(node1, node2)
sess = tf.Session()
# 指定默认会话
with sess.as_default():
print(result.eval())
sess = tf.Session()
# 这样也是可以直接进行计算的
print(result.eval(session=sess))
四、交互式环境下设置默认会话
在交互式环境下,python脚本和jupter编辑器下,通过设置默认会话来获取张量的取值更加方便
使用 tf.InteractiveSession() 会自动将生成的会话注册为默认会话
import tensorflow as tf
# 一个简单的计算图
node1 = tf.constant(3.0, tf.float32, name="node1")
node2 = tf.constant(4.0, tf.float32, name="node1")
result = tf.add(node1, node2)
sess = tf.InteractiveSession()
print(result.eval())
sess.close()
operation操作
这里给大家总结一下啥是操作,总的来说也就这几点啦:
• 计算图中的节点就是操作(Operation)
• 一次加法是一个操作,一次乘法也是一个操作
• 构建一些变量的初始值也是一个操作
• 每个运算操作都有属性,它在构建图的时候需要确定下来
• 操作可以和计算设备绑定,指定操作在某个设备上执行
• 操作之间存在顺序关系,这些操作之间的依赖就是“边”
• 如果操作A的输入是操作B执行的结果,那么这个操作A就依赖于操作B
关注我,你能变得更牛逼!
长按识别二维码关注
深度学习系列回顾
tensorflow| 深度学习(1)---Tensorflow基础概念
tensorflow| 深度学习(2) ---tensor张量
该系列会持续更新...
你点的每个好看,我都认真当成了喜欢