我正在从头开始构建一个 CNN,并且我正在尝试更改卷积层的数量以查看会发生什么。
我注意到减少卷积层的数量会增加参数的数量。
这个事实真的让我感到惊讶,因为我预计参数数量会减少。
为什么减少 CNN 中的卷积层数量会增加参数数量?
我正在从头开始构建一个 CNN,并且我正在尝试更改卷积层的数量以查看会发生什么。
我注意到减少卷积层的数量会增加参数的数量。
这个事实真的让我感到惊讶,因为我预计参数数量会减少。
为什么减少 CNN 中的卷积层数量会增加参数数量?
通常删除卷积层的数量确实会减少网络中的参数数量,但鉴于您的情况,我怀疑您在网络中的卷积层之后使用了全连接层。删除一些卷积层时,这意味着在传递给您的全连接层之前的图像/张量大小更大并且包含更多像素。由于全连接层中的每个神经元都连接到其前一层的所有像素,因此较大图像尺寸导致的参数数量增加大于去除卷积层导致的参数数量减少(导致网络中参数数量的整体增加)。
在计算 FC 和 CONV 层之间的参数时:公式为
((Conv 层高度 * 宽度 * 通道) + 1 ) * FC 层中的单位
因此,当您移除一个 CONV 层时,之前的 CONV 层会连接到 FC 层。这导致更多的参数。
例如:
假设有两个 conv 层和一个 FC 层连续连接。
64 * 64 * 3 ----> 32 * 32 * 8 ----> 64 * 1
初始参数:( 32 * 32 * 8 * 64) + (8 * (1 + (2 * 2 * 3)))= 524288 + 104 = 524392
去掉一个CONV层后的参数:64 * 64 * 3 * 64 = 786432