TensorFlow

Basic Concepts

张量(Tensor)

直观来看,就是张量的流动。

张量(tensor),即任意维度的数据,张量的流动则是指保持计算节点不变,让数据进行流动。

连接式的机器学习算法可以把算法表达成一张图,张量从图中从前到后走一遍就完成了前向运算;而残差从后往前走一遍,就完成了后向传播。

算子(operation)

机器学习算法被表达成图,图中的节点是算子(operation),节点会有0到多个输出。

核(kernel)

kernel是operation在某种设备上的具体实现。

边(edge)

TF的图中的边分为两种:

  • 正常边,正常边上可以流动数据,即正常边就是tensor
  • 特殊边,又称作控制依赖(control dependencies)
  • 没有数据从特殊边上流动,但是特殊边却可以控制节点之间的依赖关系,在特殊边的起始节点完成运算之前,特殊边的结束节点不会被执行。
  • 也不仅仅非得有依赖关系才可以用特殊边,还可以有其他用法,比如为了控制内存的时候,可以让两个实际上并没有前后依赖关系的运算分开执行。
  • 特殊边可以在client端被直接使用。

会话(Session)

客户端使用会话来和TF系统交互。

一般的模式是,建立会话,此时会生成一张空图;在会话中添加节点和边,形成一张图,然后执行。

Variables

机器学习算法都会有参数,而参数的状态是需要保存的。而参数是在图中有其固定的位置的,不能像普通数据那样正常流动。因而,TF中将Variables实现为一个特殊的算子,该算子会返回它所保存的可变tensor的句柄。


Reference :

  1. 谷歌大神带你十分钟看懂TensorFlow
  2. TensorFlow入门:第一个机器学习Demo
  3. 简单粗暴 TensorFlow 2