目录
前言
会话(Session)是用来执行图中的运算的上下文。所有的运算必须在一个会话中执行。在 TensorFlow 2.x 中,会话的概念已经被简化,默认情况下,所有的操作都会立即执行。
Tensorflow1.x
静态图(无eager mode)
学习额外概念
如图、会话、变量、占位符等
python
# Tensorflow1.0实现
import tensorflow as tf
# 构建计算图
x = tf.Variable(0.)
y = tf.Variable(1.)
add_op = x.assign(x + y) # x = x + y
div_op = y.assign(y / 2) # y = y / 2
# TensorFlow1.0中必须先打开会话,才能计算数据流图
with tf.Session() as sess:
sess.run(tf.global_variables_initializer()) # 初始化会话
for iteration in range(50):
sess.run(add_op)
sess.run(div_op)
print(x.eval()) # 也可用sess.eval(x)
如果你的TensorFlow版本是2.x,则会提示报错:AttributeError: module 'tensorflow' has no attribute 'Session'
Tensorflow2.x
动态图(eager mode默认打开)
Eager mode避免1.0缺点,直接集成在Python中
python
import tensorflow as tf
x = tf.constant(0.)
y = tf.constant(1.)
for iteration in range(50):
x = x + y
y = y / 2
print(x.numpy())
结果:
2.0