什么是TensorFlow

TensorFlow,顾名思义,是“流动的张量”。TensorFlow的数据流图是由节点(node)和边(edge)组成的有向无环图(DAG)。TensorFlow由Tensor和Flow两部分组成,Tensor(张量)代表了数据流图中的边,而Flow(流动)这个动作就代表了数据流图。

TensorFlow的边有两种连接关系:数据依赖和控制依赖。其中实线边表示数据依赖,表示张量(数据)的传递;虚线边表示控制依赖,用于控制操作的运行,边上没有数据流过,仅用于保证源节点必须在目的节点开始执行前完成执行。

在机器学习中,张量在数据流图中从前往后流动一遍就完成一次前向传播(forward propagation),而残差从后向前流动一遍则完成一次反向传播(backward propagation)。

数据流图(DAG)中的节点又称为算子,它代表一个操作(operation,OP),一般用来表示施加的数学运算,也可以表示数据输入(feed in)的起点以及输出(push out)的终点,或者是读取/写入持久变量(persistent variable)的终点。

一个TensorFlow的例子

TensorFlow的运行方式

TensorFlow的运行方式分成4步:

  • 加载数据及定义超参数
  • 构建网络
  • 训练数据
  • 评估模型和进行预测

示例代码