初步认识
「TensorFlow」是 Google 多年以来内部的机器学习系统
基本使用:
- 图(graph)来表示计算任务
- 在会话 (Session) 的上下文 (context) 中执行图
- tensor 表示数据
- 变量 (Variable) 维护状态
- feed 和 fetch 可以为任意的操作(arbitrary operation) 赋值或者从其中获取数据
tensorflow 本质:一个编程系统
图来表示计算任务
图中的节点称为op (operation)
一个op获得0个或者多个Tensor
每一个Tensor是类型化的多维数组
tensorflow 图描述计算过程
图必须在会话中启动
会话将图的op分发到CPU或GPU上
会话也提供执行op的方法
op执行后,将产生的Tensor返回
python中返回的tensor是numpy对象
C++中返回的tensor是tensorflow::Tensor 实例
计算图
TensorFlow 程序组织成 构建阶段 and 执行阶段
构建阶段 op的执行步骤被描述成一个图
执行阶段 会话执行图中的op
构建图,首先是创造“源op”
源op 无输入,其输出被传递给其他op做运算
Python 库中, op 构造器的返回值代表被构造出的 op 的输出, 这些返回值可以传递给其它 op 构造器作为输入
TensorFlow Python 库有一个 默认图 (default graph) , op 构造器可以为其增加节点
启动图:首先创建一个 Session 对象
TensorFlow 将图形定义转换成分布式执行的操作, 以充分利用可用的计算资源(如 CPU 或 GPU).
不需要显式指定使用 CPU 还是 GPU, TensorFlow 能自动检测.
用 with…Device 语句用来指派特定的 CPU 或 GPU 执行操作
交互式使用
使用一个会话 Session 来 启动图
调用 Session.run() 方法执行操作
若IPython 之类的 Python 交互环境,使用 InteractiveSession 代替 Session 类,使用Tensor.eval() 和 Operation.run() 方法代替 Session.run() .
Tensor
tensor 数据结构来代表所有的数据
计算图中, 操作间传递的数据都是 tensor
一个 tensor 包含一个静态类型 rank, 和 一个 shape
变量
变量维护图执行过程中的状态信息
Fetch
为了取回操作的输出内容
在使用 Session 对象的 run() 调用 执行图时, 传入一些 tensor
Feed
feed 使用一个 tensor 值临时替换一个操作的输出结果
作为 run() 调用的参数
资料
from 极客学院 TensorFlow 官方文档中文版 - v1.2