1. 概述
TensorFlow是一个采用数据流图,用于数值计算的开源软件库。其命名中的Tensor(张量),有N维数组之意,Flow(流)则表示基于数据流图(有向图)的计算。TensorFlow运行过程就是张量从图的一端流动至另一端的计算过程。
2. 基本概念
- 图(Graph):描述计算过程,使用图来表示计算任务;
- 张量(Tensor):表示数据,每个Tensor是N维数组;
- 操作(operation):图中的节点(Node)就是执行相关操作;
- 会话(Session):图必须在“会话”的上下文中执行。会话将图的操作分发到CPU或GPU设备上执行;
- 变量(Variable):运行过程中可被改变的,通过变量来维护状态;
TensorFlow边的两种连接关系:
- 数据依赖
数据依赖用实线边表示,代表数据(张量)。 - 控制依赖
虚线边表示控制依赖,用于控制操作的运行,这类边上边没有数据流过
节点
图中的节点又称作算子,表示一个操作;它有如下类型:
- 数学运算操作
add、subtract、multiply、div、exp… - 矩阵运算操作
矩阵乘法、转置、逆… - 数组运算操作
concat(连接)、split(分割)、slice(切片)、constant(常量)、shape(维度)… - 有状态的操作
variable(变量)、assign… - 检查点操作
save、restore… - 神经网络构建操作
Sigmoid、Softmax、ReLU… - 控制张量流动的操作
merge、switch…