5.4 Tensorflow基本概念
Tensorflow中的一些基本概念在Tensorflow2版本中已经被隐藏起来或者已经不再使用了,但本文还是打算给大家简单介绍一些Tensorflow的基本概念。
Tensorflow是一个编程系统,使用图(Graph)来表示计算任务,图(Graph)中的节点称之为op(operation),一个op获得0个或多个Tensor,执行计算,产生0个或多个Tensor,Tensor看作一个n维的数据。在“Tensorflow1”中,图必须在会话(Session)中运行,如图5.10所示。
在图5.10中,Tensor 0、Tensor 1和Tensor 2表示数据,一般可以用在数据的输入、输出和计算的中间流程;Variable 0表示变量,一般用于记录一些需要变化的数值,如需要训练的模型参数。虽然可以使用Tensor的地方都可以使用Variable,不但它们还是有一些区别的。
图5.10中的Graph 0表示一个完整的计算任务,最上面的Tensor0和Variable0一起传入一个operation0里面,这个operation0可以是加法、减法、乘法和除法等运算。运算完了之后,产生一个Tensor1,这个Tensor1跟Tensor2一起被送入operation1,在operation1中进行计算。
再举一个更具体的例子,如图5.11所示。
图5.11中的X是一个Tensor,表示数据的输入;W和b是Variable,表示模型需要训练的参数。W和X共同传入了MatMul的operation中,进行矩阵乘法的操作,计算完后得到的Tensor0会传入到Add(operation)中,其跟b一起进行加法操作,得到Tensor1。Tensor1传入ReLU(operation)激活函数进行计算,得到Tensor2后继续传递信号,最终得到Tensor3。
在前面的内容中我们已经介绍过,在Tensorflow 2中使用的是动态图机制,也就是说我们不再需要会话,我们可以在任意时候进行计算并得到结果,程序设计起来会更加方便,更加自然。
图5.10 会话(Session)
图5.11 神经网络计算图