Skip to content

2. TensorFlow 基本运算

2.1 会话

会话拥有并管理 TensorFlow 程序运行时的所有资源。记得使用完成后关闭回话,安全回收所有用到的资源。

  • 运行回话求值 sess.run(tens1)
  • 使用 try 保证 sess.close() 必定执行
py
sess = tf.Session()
try:
    print(sess.run(tens1))
except Exception as e:
    print('异常:', e)
finally:
    sess.close()

使用上下文管理器管理会话

py
with tf.Session() as sess:
    print(sess.run(tens1))

指定默认会话

py
result = tf.add(tens1, tens2)
sess = tf.Session()
with sess.as_default():
    print(result.eval())

指定一个会话

py
sess = tf.Session()
print(result.eval(session=sess))

自动注册为默认会话

py
sess = tf.InteractiveSession()
print(result.eval())
sess.close()

2.2 常量和变量

2.2.1 常量

常量(constant)在运行过程中值不会被改变,无需初始化。

py
a = tf.constant(1.0, name='a')
b = tf.constant(2.5, name='a')
c = tf.add(a, b, name='c')

sess = tf.Session()
c_val = sess.run(c)
print(c_val)
sess.close()
py
3.5

2.2.2 变量

Variable 类是 TensorFlow 的变量类型,变量必须进行初始化。

py
# 定义一个变量
a = tf.Variable(value, name)

# 定义变量的初始化操作
init_op = a.initializer()

# 定义所有全局变量的初始化操作
init = tf.global_variables_initializer()

运行初始化

py
init = tf.global_variables_initializer()
sess.run(init)

2.3 变量的赋值

2.4 占位符,填充和获取数据