TensorFlow
Basic Concepts
张量(Tensor)
直观来看,就是张量的流动。
张量(tensor),即任意维度的数据,张量的流动则是指保持计算节点不变,让数据进行流动。
连接式的机器学习算法可以把算法表达成一张图,张量从图中从前到后走一遍就完成了前向运算;而残差从后往前走一遍,就完成了后向传播。
算子(operation)
机器学习算法被表达成图,图中的节点是算子(operation),节点会有0到多个输出。
核(kernel)
kernel是operation在某种设备上的具体实现。
边(edge)
TF的图中的边分为两种:
- 正常边,正常边上可以流动数据,即正常边就是tensor
- 特殊边,又称作控制依赖(control dependencies)
- 没有数据从特殊边上流动,但是特殊边却可以控制节点之间的依赖关系,在特殊边的起始节点完成运算之前,特殊边的结束节点不会被执行。
- 也不仅仅非得有依赖关系才可以用特殊边,还可以有其他用法,比如为了控制内存的时候,可以让两个实际上并没有前后依赖关系的运算分开执行。
- 特殊边可以在client端被直接使用。
会话(Session)
客户端使用会话来和TF系统交互。
一般的模式是,建立会话,此时会生成一张空图;在会话中添加节点和边,形成一张图,然后执行。
Variables
机器学习算法都会有参数,而参数的状态是需要保存的。而参数是在图中有其固定的位置的,不能像普通数据那样正常流动。因而,TF中将Variables实现为一个特殊的算子,该算子会返回它所保存的可变tensor的句柄。
Reference :