tensorflow学习笔记(2)——基础(二)——张量和会话
来源:互联网 发布:php开源项目 编辑:程序博客网 时间:2024/05/18 01:13
tensorflow学习笔记(2)
3张量flow
1概念
数据用张量的形式来表示,功能上看,张量可以理解为多维数组,第n阶张量就上一个n维数组,但实现不是数组形式,只是对TF中计算结果的引用,其中没有真正保存数字,而是如何得到这些数字的计算过程。
import tensorflow as tf#tf.constant是一个计算,其结果为一个张量,保存在变量a中a = tf.constant([1.0, 2.0], name="a")b = tf.constant([2.0, 3.0], name="b")result = a+b# result = tf.add(a, b, name="add")#两行代码效果一样print (result)'''输出:Tensor("add:0", shape=(2,), dtype=float32)'''
TF的计算结果不是一个具体数字而是一个张量的结构,一个张量中保存了3个属性:name, shape, type
1. name不仅是一个张量的唯一标识符,也给出了这个张量如何计算出来,计算图上每个节点代表一个计算,其命名可以通过node:src_ouput形式给出,其中node为节点名称,src_ouput表示当前向量来自节点的第几个输出。
2. shape描述了张量的维度信息,上面的shape=(2, )
表示result是一个一维数组其长度为2。
3. type描述了张量的唯一类型,TF会进行类型检查。TF支持14种类型:
实数(tf.float32, tf.float64)
整数(tf.int8, tf.int16, tf.int64, tf.uint8)
布尔型(tf.bool)
复数(tf.comlex64, tf.complex128)
2使用
两大类用途
1. 对中间计算结果的引用,提高代码可读性
2. 获得计算结果(使用session得到具体数字,tf.Session().run(result)
)
集合(collection)可管理不同类别的资源。
几个常用的自动维护的集合:
4运行模型-会话session
计算图和张量组织数据和运算,会话用来执行定义好的运算,session拥有并管理TF程序运行时的所有资源,所有计算完成后需要关闭会话来帮助系统回收资源。使用会话模式有两种
1. 显式调用会话生成函数和关闭会话函数
#创建一个会话sess = tf.Session()sess.run(...)#关闭会话,释放本次运行中使用的资源sess.close()
- 使用上下文管理器with
#创建一个会话并通过上下文管理器管理这个会话with tf.Session() as sess: sess.run()#不需要再调用“Session.close()”来关闭会话,当上下文退出时就自动完成了
TF不会生成默认会话,需要手动指定。默认对话指定后可以通过tf.Tensor.eval来计算一个张量的取值。如下:
sess = tf.Session()with sess.as_defalut(): print(result.eval())
下面的代码实现同样功能
sess = tf.Session()#下面两个命令功能相同print(sess.run(result))print(result.eval(session=sess))
在交互式环境下使用tf.InteractiveSession省去将产生的会话注册为默认会话的过程,可以自动将生成的会话注册为默认会话。
两种方法都可以使用ConfigProto Protocol Buffer来配置需要生成的会话。方法如下:
config = tf.ConfigProto(allow_soft_placement=True, log_device_placement=True)sess1 = tf.InteractiveSession(config=config)sess2 = tf.Session(config=config)
来配置类似并行的线程数、GPU分配策略、运算超时时间等参数。最常用2个布尔型参数:
allow_soft_placement, 为True时,三个条件成立任意一个,GPU上的运算可以放到CPU:
1. 运算无法在GPU上执行
2. 无GPU资源
3. 运算输入包含对CPU计算结果的引用
log_device_placement, 为True时,日志中将会记录每个节点被安排在了哪个设备上以方便调试。设为False可减少日志量。
- tensorflow学习笔记(2)——基础(二)——张量和会话
- tensorflow基础(三)——张量和会话
- Tensorflow——张量
- Tensorflow学习笔记——张量、图、常量、变量(一)
- Tensorflow深度学习笔记(二)-图、会话和变量
- Tensorflow——会话
- TensorFlow学习笔记之二——安装和运行
- tensorflow学习笔记(1)——基础(一)——安装和计算图
- tensorflow学习笔记(3)——基础(三)——TF训练和变量
- Tensorflow学习笔记——占位符和feed_dict(二)
- 深度学习笔记——TensorFlow学习笔记(二)激活函数、损失函数、优化算法和正则项
- TensorFlow的张量与会话
- tensorflow学习笔记(一)——tensorflow基本使用
- 【DL--03】深度学习基本概念—张量
- TensorFlow学习笔记(二):TensorFlow入门
- Tensorflow学习笔记(二)——MNIST机器学习入门
- 深度学习笔记——深度学习框架TensorFlow(二)
- Tensorflow——学习笔记(1)
- 稳定
- POJ.1797 Heavy Transportation (Dijkstra变形)
- mac上安装hadoop
- PHP面向对象编程中的魔术方法__clone()
- bzoj3626[LNOI2014]LCA 树链剖分
- tensorflow学习笔记(2)——基础(二)——张量和会话
- 二叉查找树
- Hadoop好友推荐系统-推荐结果查询
- 2017.7.10 C组总结
- 牛腩总结
- JAVA 静态变量(方法)用法
- foreach遍历list删除元素一定会报错?
- 笔记5--CSS基础知识
- 记忆宫殿