在我的二进制分类的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。降低维度意味着什么?如果考虑到在每个卷积层之后有一个最大池操作,那么每个层的输出的大小是什么?
发布于 2020-01-13 15:27:24
问题1)我对上述每一种情况的计算是否正确?
不,这不对。计算(方形)卷积层的空间尺寸(高度和宽度)的公式是
O = \frac{I - K + 2P}S + 1以I为空间输入大小,K为内核大小,P为填充,S为跨步。对于两种情况,即(假设填充了1,因为否则,数字将不能稍后与池相匹配):
关于参数,请注意,这并不是指一个层的大小。参数是神经网络学习的变量,即权值和偏差。第一层存在1 \cdot 20 \cdot 3 \cdot 3权重和20偏差。第二层的20\cdot 40 \cdot 3 \cdot 3权重和40偏差。
卷积层的大小不取决于输入通道的数目。然而,第一层的参数数增加到2 \cdot 20 \cdot 3 \cdot 3,而偏倚的数目保持不变。第二卷积层完全不受影响。
( Question2)我读过,最大池的目的是降低特征映射的维数。在我的例子中,每个最大池的大小都是3和2。降低维度意味着什么?如果考虑到在每个卷积层之后有一个最大池操作,那么每个层的输出的大小是什么?
通常,卷积层不会改变输入的空间维数。相反,需要使用池层。池层几乎总是使用2的跨距,大小为2x2 (即池不重叠)。因此,您的示例非常少见,因为您使用的是3x3大小。
您可以应用与上面相同的公式(假设再次填充-请参见脚注(1)以获得解释)。
从现在开始,输入到第二个conv。图层具有不同的空间维度:
最后:
(1) 0.5的填充是每个空间维度所需的平均填充量。例如,看看第二个maxpooling内核如何扫描输入(我选择了第二个输入,因为输入较小,因此更容易可视化)。输入的宽度和高度为14:

从图中可以看出,实际的填充只需要在一边的高度和宽度。因此,实际执行的填充是
同样的数字也适用于身高。因此,实际填充是(0.5, 0.5)。
此外,图中显示了7x7深蓝色方块(内核中心)。它将导致pool_2输出的计算可视化,空间维数为7x7 (O_{pool\text{ }2}=7)。
https://datascience.stackexchange.com/questions/66338
复制相似问题