使用图来表示计算任务
TensorFlow是一个编程系统,它的计算可以表示为一个有向图。其中每一个运算操作op (operation)称为一个节点(node),节点与节点之间的连接称为边。计算图中每一个节点都可以有任意多个输入和输出,节点可以算是运算操作的实例化。
例如,通常在构建阶段创建一个图来表示和训练神经网络,然后在执行阶段反复执行图中的训练 op。
在被称之为会话(Session)的上下文中(context)中执行图
构造阶段完成后,才能启动图。启动图的第一步是创建一个 Session 对象,如果无任何创建参数,会话构造器将启动默认图。
使用tensor表示数据
TensorFlow 程序使用 tensor 数据结构来代表所有的数据,在计算图中流动的数据被称为张量(tensor),每个 tensor 是一个类型化的多维数组。
例如,你可以将一小组图像集表示为一个四维浮点数数组,这四个维度分别是 [batch, height, width, channels]。
使用变量(Variable)维护状态
变量维护图执行过程中的状态信息,通常会将一个统计模型中的参数表示为一组变量。
例如,你可以将一个神经网络的权重作为某个变量存储在一个 tensor 中. 在训练过程中,通过重复运行训练图,更新这个 tensor.
使用feed和fetch可以为任意的操作赋值或者从其中获取数据
TensorFlow 还提供了 feed 机制,该机制可以临时替代图中的任意操作中tensor 可以对图中任何操作提交补丁,直接插入一个 tensor.
feed 使用一个 tensor 值临时替换一个操作的输出结果. 你可以提供 feed 数据作为 run() 调用的参数.
feed 只在调用它的方法内有效,方法结束,feed 就会消失。最常见的用例是将某些特殊的操作指定为 “feed” 操作,标记的方法是使用 tf.placeholder() 为这些操作创建占位符。