学习资料来源(中文社区):http://www.tensorfly.cn/tfdoc/get_started/basic_usage.html
基本概念:
- 使用图 (graph) 来表示计算任务.
- 在被称之为
会话 (Session)
的上下文 (context) 中执行图. - 使用 tensor 表示数据,其有阶、数据类型的概念.
- 通过
变量 (Variable)
维护状态. - 使用 feed 和 fetch 可以为任意的操作(arbitrary operation) 赋值或者从其中获取数据.
综述:TensorFlow 是一个编程系统, 使用图来表示计算任务. 图中的节点被称之为 op (operation 的缩写). 一个 op 获得 0 个或多个 Tensor
, 执行计算, 产生 0 个或多个 Tensor
. 每个 Tensor 是一个类型化的多维数组. 例如, 你可以将一小组图像集表示为一个四维浮点数数组, 这四个维度分别是 [batch, height, width, channels]
.一个 TensorFlow 图描述了计算的过程. 为了进行计算, 图必须在 会话
里被启动. 会话
将图的 op 分发到诸如 CPU 或 GPU 之类的 设备
上, 同时提供执行 op 的方法. 这些方法执行后, 将产生的 tensor 返回. 在 Python 语言中, 返回的 tensor 是 numpy ndarray
对象; 在 C 和 C++ 语言中, 返回的 tensor 是 tensorflow::Tensor
实例.
图的定义:TensorFlow 程序通常被组织成一个构建阶段和一个执行阶段. 在构建阶段, op 的执行步骤 被描述成一个图. 在执行阶段, 使用会话执行执行图中的 op.例如, 通常在构建阶段创建一个图来表示和训练神经网络,
然后在执行阶段反复执行图中的训练 op.
构建图:参考附录代码
图的使用和启动:构造阶段完成后, 才能启动图. 启动图的第一步是创建一个 Session
对象, 如果无任何创建参数, 会话构造器将启动默认图.Session启动后需要关闭,具体使用参考附录代码。需要注意的是,可以借助with代码块关闭session,也可以with tf.device选择设备。tf.InteractiveSession()可以使tf进入交互式模式。
变量:代码中 assign()
操作是图所描绘的表达式的一部分, 正如 add()
操作一样. 所以在调用 run()
执行表达式之前, 它并不会真正执行赋值操作.通常会将一个统计模型中的参数表示为一组变量. 例如, 你可以将一个神经网络的权重作为某个变量存储在一个 tensor 中. 在训练过程中, 通过重复运行训练图, 更新这个 tensor.
Fetch/Feed:fetch可以一次获取多数据,feed可以据在使用时实际赋值(使用占位符placeholder)
附录代码
略。