学习笔记4:TensorFlow编程语法--会话


TensorFlow概述:

在tensorflow中,所有的数据都通过张量的形式来表示 从功能的角度,张量可以简单理解为多为数组
1、零阶张量表示标量(scalar),也就是一个数 
2、一阶张量为向量(vector),也就是一维数组 
3、n阶张量可以理解为一个n维数组 张量并没有真正保存数字,它保存的是计算过程

会话(session)

会话拥有并管理Tensorflow程序运行时的所有资源,当所有计算完成之后需要关闭会话帮助系统回收资源(不至于使系统越运行越慢)。

第一种会话模式如下代码所示:(需要主动关闭会话)

import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()     # 解决方案:注释tf的引用,换为兼容模式。

# 定义计算图
tens1 = tf.constant([1, 2, 3])

# 创建一个会话
sess = tf.Session()

# 使用这个创建好的会话来得到关心的运算的结果。比如可以调用sess.run(result)
# 来得到张量result的取值
print(sess.run(tens1))

# 关闭会话使得本次运行中使用到的资源可以被释放
sess.close()

第二种会话模式如下代码所示:(不需要主动关闭会话)

import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()     # 解决方案:注释tf的引用,换为兼容模式。
node1 = tf.constant(3.0, tf.float32, name='node1')
node2 = tf.constant(4.0, tf.float32, name='node2')
result = tf.add(node1, node2)
# 创建一个会话,并通过Python中的上下文管理器来管理这个会话
with tf.Session() as sess:
    # 使用这创建好的会话来计算关心的结果
    print(sess.run(result))
# 不需要再调用Session.close()函数来关闭对话
# 当上下文退出时会话关闭和资源释放也自动完成了


手动生成默认会话:

TensorFlow不会自动生成默认的会话,需要手动指定。当默认的会话被指定之后可以通过tf.Tensor.eval函数来计算一个张量的取值。

import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()     # 解决方案:注释tf的引用,换为兼容模式。
node1 = tf.constant(3.0, tf.float32, name='node1')
node2 = tf.constant(4.0, tf.float32, name='node2')
result = tf.add(node1, node2)


sess = tf.Session()
with sess.as_default():  # 注册成默认
    print(result.eval())


交互式环境下设置默认会话:

在交互式环境下,Python脚本或者Jupyter编辑器下,通过设置默认会话来获得张量的取值更加方便。tf.InteractiveSession使用这个函数会自动将生成的会话注册为默认会话

import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()     # 解决方案:注释tf的引用,换为兼容模式。
node1 = tf.constant(3.0, tf.float32, name='node1')
node2 = tf.constant(4.0, tf.float32, name='node2')
result = tf.add(node1, node2)

sess = tf.InteractiveSession()   # 定义交互式会话,同时将其注册成当前缺省的会话
print(result.eval())
sess.close()

你可能感兴趣的:(学习总结,tensorflow,人工智能,python)