首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CNN中最大池层的需求及输出大小和参数数的混淆

CNN中最大池层的需求及输出大小和参数数的混淆
EN

Data Science用户
提问于 2020-01-12 03:04:41
回答 1查看 1.5K关注 0票数 3

在我的二进制分类的CNN体系结构中,我有2个卷积层、2个最大池层、2个批规范化操作、1个RELu和1个完全连接层。

Case1:当频道数,d=1

在第一层(大小为[28*28*d] )的输入中,d=1通道与应用于大小{f_h \times f_w \times d} = [3\times 3\times 1]的所有输入通道上的M_1=20 数目相转换,其步长(步长)为1,以创建尺寸{(h-f_h+1) \times (w - f_w +1)\times d \times M_1} = (28-3 +1)\times(28-3+1)\times 10 = [26\times 26\times 20]的特征映射。

第二卷积层包含两倍的滤波器数目= 40倍的大小相同的[3\times 3 \times 1]。因此,作为第二卷积层的输出,参数数变为[23 * 23 * 1 * 40]。参数总数= [26\times 26\times 20]+ [23 * 23 * 40]

案例2:当d=2和所有其他大小相同时。过滤器大小变为[3 \times 3 \times 2]。第一卷积层的输出将包含:(28-3 +1)\times(28-3+1)\times 2 \times 20 = [25\times 25\times 40]。对于第二个卷积层,输出将包含[23 \times 23 \times 2 \times 40]参数。

Question1)我对上述每一种情况的计算是否正确?

( Question2)我读过,最大池的目的是降低特征映射的维数。在我的例子中,每个最大池的大小都是3和2。降低维度意味着什么?如果考虑到在每个卷积层之后有一个最大池操作,那么每个层的输出的大小是什么?

EN

回答 1

Data Science用户

回答已采纳

发布于 2020-01-13 15:27:24

问题1)我对上述每一种情况的计算是否正确?

不,这不对。计算(方形)卷积层的空间尺寸(高度和宽度)的公式是

O = \frac{I - K + 2P}S + 1I为空间输入大小,K为内核大小,P为填充,S为跨步。对于两种情况,即(假设填充了1,因为否则,数字将不能稍后与池相匹配):

案例1

  • 第一层:空间维度是O_1 = \frac{28 - 3 + 2\cdot1}1 + 1 = 28。所以总层有height \cdot width \cdot depth = 28 \cdot 28 \cdot 20大小。
  • 第二层:第二层具有O_2 = \frac{28 - 3 + 2\cdot1}1 + 1 = 28,总层大小为height \cdot width \cdot depth = 28 \cdot 28 \cdot 40

关于参数,请注意,这并不是指一个层的大小。参数是神经网络学习的变量,即权值和偏差。第一层存在1 \cdot 20 \cdot 3 \cdot 3权重和20偏差。第二层的20\cdot 40 \cdot 3 \cdot 3权重和40偏差。

案例2

卷积层的大小不取决于输入通道的数目。然而,第一层的参数数增加到2 \cdot 20 \cdot 3 \cdot 3,而偏倚的数目保持不变。第二卷积层完全不受影响。

( Question2)我读过,最大池的目的是降低特征映射的维数。在我的例子中,每个最大池的大小都是3和2。降低维度意味着什么?如果考虑到在每个卷积层之后有一个最大池操作,那么每个层的输出的大小是什么?

通常,卷积层不会改变输入的空间维数。相反,需要使用池层。池层几乎总是使用2的跨距,大小为2x2 (即池不重叠)。因此,您的示例非常少见,因为您使用的是3x3大小。

您可以应用与上面相同的公式(假设再次填充-请参见脚注(1)以获得解释)。

O_{pool\text{ }1} = \frac{28 - 3 + 2\cdot0.5}2 + 1 = 14

从现在开始,输入到第二个conv。图层具有不同的空间维度:

O_{CNN\text{ }2} = \frac{14 - 3 + 2\cdot1}1 + 1 = 14

最后:

O_{pool\text{ }2} = \frac{14 - 3 + 2\cdot0.5}2 + 1 = 7

脚注

(1) 0.5的填充是每个空间维度所需的平均填充量。例如,看看第二个maxpooling内核如何扫描输入(我选择了第二个输入,因为输入较小,因此更容易可视化)。输入的宽度和高度为14

从图中可以看出,实际的填充只需要在一边的高度和宽度。因此,实际执行的填充是

padding_{width} = \frac{padding_{left} + padding_{right}}{2}=\frac{0 + 1}{2}=0.5

同样的数字也适用于身高。因此,实际填充是(0.5, 0.5)

此外,图中显示了7x7深蓝色方块(内核中心)。它将导致pool_2输出的计算可视化,空间维数为7x7 (O_{pool\text{ }2}=7)。

票数 1
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/66338

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档