导图社区 Tensorflow基础(一)
计算图、张量、会话,来之《TensorFlow实战Google深度学习框架》
贫穷的本质在于缺乏财商教育,踏上这条荆棘之路,直面内心的恐惧和贪婪。20岁是积累财富的一个好起点,当然越早越好~
来自微信推文《高手做事情,都有体系感》
1. 集中注意力,提高工作效率,为自己创造出更多的自由时间。 2.把这个时间用于自我投资,让自己不断成长,能力进一步提升,结果在收获成果的同时还能创造出更多的时间。
社区模板帮助中心,点此进入>>
互联网9大思维
组织架构-单商户商城webAPP 思维导图。
域控上线
python思维导图
css
CSS
计算机操作系统思维导图
计算机组成原理
IMX6UL(A7)
考试学情分析系统
TensorFlow
计算图 Graph
基本概念
节点
运算节点
1. Tensorflow中所有的计算都会被自动转化为计算图上的节点
变量、常量节点
边
每一条边代表了计算之间的依赖关系
功能
隔离张量和计算
不同计算图上的张量和运算都不会共享
提供计算机制
tf.Graph.device函数来指定运算计算的设备-GPU机制
生成新的计算图
得到默认的计算图
tf.get_default_graph()
定义新的计算图
tf.Graph()
资源管理
资源类型:张量、变量、运行tensorflow程序所需要的队列资源
在一个计算图中,通过集合Collection来管理不同类别的资源
将资源加入集合
tf.add_to_collection
从集合中获取资源
tf.get_collection
常用集合
所有变量
tf.GraphKeys.VARIABLES
持久化TensorFlow模型
可学习的变量(一般指神经网络中的参数)
tf.GraphKeys.TRAINABLE_VARIABLES
模型训练、生成模型可视化内容
日志生成相关的变量
tf.GraphKeys.SUMMARIES
TensorFlow计算可视化
处理输入的QueueRunner
tf.GraphKeys.QUEUE_RUNNERS
输入处理
所有计算了滑动平均值的变量
tf.GraphKeys.MOVING_AVERAGE_VARIABLES
计算变量的滑动平均值
张量Tensor
简介
张量是TensorFlow管理数据的形式,多维数组结构
张量的结构
属性名字-name
张量的唯一标识符
张量的维度-shape
类型-dtype
每一个张量只要一种数据类型
通过dtype来明确指定变量或常量的类型
张量与Numpy的区别
在张量中不保存数字,而是对运算结构它保存的是如何得到这些数字的计算过程,即保存的是一个结构;如果要得到计算结果,运行session得到
print('result')Tensor("add:0",shape=(2,),dtype=float32)
Numpy保存数字
张量的用途
对中间计算结果的引用(包括生成常量函数的引用)
张量可以用来获得计算结果
张量本身不存储具体数字,但是通过会话就可以计算得到具体的数字
第一阶段:定义计算图中所有的计算
会话Session
会话拥有并管理Tensorflow程序运行时的所有资源
所有计算完成后需要关闭会话来帮助系统回收资源,否则可能会出现资源泄露的问题
创建会话的两种模式
显示调用会话生成函数和关闭函数
sess = tf.Session()sess.run(result)sess.close()
Python上下文来管理会话
with tf.Session() as sess: sess.run(...)
会话机制
Tensorflow不会生成默认的会话,需要手动指定。
sess = tf.Session()with sess.as_default() print(result.eval())
当默认的会话被指定后,可以通过tf.Tensor.eval()来计算一个张量的取值
原来获取值的方式
sess.run(result)
现在获取值的方式
result.eval() 或result.eval(session=sess)
Tips
通过设置默认会话的方式来获取张量的取值更加方便
直接构建默认会话的函数
tf.InteractiveSession()
使用这个函数会自动讲生成的会话注册为默认会话
配置会话
ConfigProto Protocol Buffer
配置参数
运算超时时间
GPU分配策略
并行的线程数
常用案例
config = tf.ConfigProto(allow_soft_placement=True, log_device_placement=True)sess1 = tf.InteractiveSession(config=config)|sess2 = tf.Session(config=config)
allow_soft_placement=True增强移植性
log_device_placement=True记录每个节点安排的设备
第二阶段:执行计算
TensorFlow程序运行的两个阶段:第一阶段:定义计算图中的所有运算第二阶段:运行计算