上图显示了如何使用`3 x 3`过滤器(边缘检测器)在宽度减小和深度增加(从 3 到 32)方面转换`3 x 3`图像的图形的一部分。 内核(`f[i]`)中 27 个(3 x 3 x 3)单元中的每一个都乘以输入(`A[i]`)。 然后,将这些值与**整流线性单元**(**ReLU**)激活函数(`b[i]`)相加在一起 单个元素(`Z`),如以下等式所示:
上图显示了如何使用`3 x 3`过滤器(边缘检测器)在宽度减小和深度增加(从 3 到 32)方面转换`3 x 3`图像的图形的一部分。 内核(`f[i]`)中 27 个(`3 x 3 x 3`)单元中的每一个都乘以输入(`A[i]`)。 然后,将这些值与**整流线性单元**(**ReLU**)激活函数(`b[i]`)相加在一起 单个元素(`Z`),如以下等式所示:
![](img/f7b861f9-ab93-4a27-aecc-567fe346bf5e.png)
...
...
@@ -92,7 +92,7 @@ CNN 的图像过滤和处理方法包括执行多种操作,所有这些操作
`1 x 1`卷积在所有 128 个通道中与`5 x 5`输入层执行逐元素乘法–将其在深度维度上求和,并应用 ReLU 激活函数在`5 x 5`中创建单个点 输出表示 128 的输入深度。本质上,通过使用这种机制(卷积+整个深度的和),它会将三维体积折叠为具有相同宽度和高度的二维数组。 然后,它应用 32 个过滤器以创建`5 x 5 x 32`输出,如前所示。 这是有关 CNN 的基本概念,因此请花一些时间来确保您理解这一点。
本书将使用`1 x 1`卷积。 稍后,您将了解到池化会减小宽度,而`1 x 1`卷积会保留宽度,但可以根据需要收缩或扩展深度。 例如,您将看到在网络和 Inception 层中使用了`1 x 1`卷积(在“第 5 章”,“神经网络架构和模型”中。具有 1 的 32 过滤器) x 1 的卷积可以在 TensorFlow 中表示为`.tf.keras.layers.Conv2D(32, (1,1))`。
本书将使用`1 x 1`卷积。 稍后,您将了解到池化会减小宽度,而`1 x 1`卷积会保留宽度,但可以根据需要收缩或扩展深度。 例如,您将看到在网络和 Inception 层中使用了`1 x 1`卷积(在“第 5 章”,“神经网络架构和模型”中。具有`1 x 1`的 32 过滤器) 的卷积可以在 TensorFlow 中表示为`.tf.keras.layers.Conv2D(32, (1,1))`。
# 汇集
...
...
@@ -111,7 +111,7 @@ CNN 的图像过滤和处理方法包括执行多种操作,所有这些操作
填充用于保留要素图的大小。 通过卷积,可能会发生两个问题,并且填充会同时解决两个问题:
* 每次卷积操作时,要素图的大小都会缩小。 例如,在上图中,由于卷积,一个`7 x 7`的特征图缩小为 5 x 5。
* 每次卷积操作时,要素图的大小都会缩小。 例如,在上图中,由于卷积,一个`7 x 7`的特征图缩小为`5 x 5`。