第三节
标签(空格分隔): 张量 计算图 会话 前向传播 反向传播
3.1 张量、计算图、会话
在tensorflow中,用张量表示数据,用计算图搭建神经网络,用会话执行计算图。
3.1.1 张量
张量就是多维数组(列表),用阶来表示张量的维数。如下图1所示,标量为零阶张量,向量为一阶张量,矩阵为二阶张量,如例子所示,有几个方括号就是几阶张量。
图1 张量
3.1.2 计算图
计算图(Graph):搭建神经网络的计算过程,只搭建,不运算。图2为一个简单的计算图结构,
\(x_1\) 、\(x_2\) 为输入,\(w_1\) 、\(w_2\) 分别是 \(x_1\) 到 \(y\) ,\(x_2\) 到 \(y\) 的权重,\(y = X * W = x_1 * w_1 + x_2 * w_2\) , 计算y的过程实际就是矩阵的乘法。
图2 计算图结构
下图3为搭建好一个简单的计算图之后的输出结果,输出结果为一个张量(Tensor),并没有实际计算张量的值,其余参数的具体含义如下:
3.1.3 会话
会话(Session):执行计算图中的节点运算,用with结构实现,具体实现如下图4所示:
代码实现
#张量,计算图,会话
import tensorflow as tf
x = tf.constant([[1.0,2.0]])
w = tf.constant([[3.0],[4.0]])
y = tf.matmul(x,w)
print(y)
with tf.Session() as sess:
print(sess.run(y))
Tensor("MatMul_1:0", shape=(1, 1), dtype=float32)
[[11.]]