前向传播
由输入 (或写作 )开始,逐层计算 ,直到计算出输出值 或 的过程叫做神经网络的前向传播(forward propagation),由前往后传播神经元的激活信号
前向传播的过程也叫推理
用 TensorFlow 在代码中实现推理
使用烘焙咖啡豆的例子:
# 第零层:输入层
# 200℃、17 分钟
x = np.array([[200.0, 17.0]])
# 第一层:隐藏层
# Dense:稠密层,即全连接层
# units=3:3 个神经元
# activation=′sigmoid':激活函数使用 sigmoid
layer_1 = Dense(units=3, activation=′sigmoid')
# 将这个第一层函数应用于 x 的值来计算第一层的激活值 a1 向量
a1 = layer_1(x)
# 第二层:隐藏层
layer_2 = Dense(units=1, activation=′sigmoid')
a2 = layer_2(a1)
# 得出预测值
if a2 >= 0.5:
y_hat = 1
else:
y_hat = 0
TensorFlow 和 NumPy 数据
有一个 2 x 3 的二维矩阵:
NumPy 表示:
np.array([[1, 2, 3],
[4, 5, 6]])
TensorFlow 表示:
tf.Tensor([[1, 2, 3], [4, 5, 6]], shape=(2, 3), dtype=float32)
这些库的发展历程让我们不得不做额外的转换工作,实际上这两个库能很好地协同工作
向量化
近十年来深度学习研究人员之所以能够扩大神经网络的规模,并构建出真正大规模的神经网络,原因是神经网络能够进行向量化,借助矩阵乘法它们能非常高效地实现。事实证明并行计算硬件,包括 GPU 以及一些 CPU 功能都非常擅长进行大规模矩阵乘法运算
循环 VS. 向量化: