快速理解卷积神经网络的输入输出尺寸问题

一般一个神经网络的一层包括一个卷积和一个池化,这里主要讲述对输入和输出的尺寸的理解:

一、卷积

首先input输入矩阵,weight权值矩阵(滤波器)如下图429是由weight与input对应位置相乘再相加得到。

然后是步长stride和边界padding

像我们在上面看到的一样,过滤器或者说权值矩阵,在整个图像范围内一次移动一个像素。我们可以把它定义成一个超参数,从而来表示我们想让权值矩阵在图像内如何移动。如果权值矩阵一次移动一个像素,我们称其步长为 1。下面我们看一下步长为 2 时的情况:weight从右下角的204跳过113直接移步到109

 

可以看见当我们增加步长值的时候,图像的规格持续变小。在输入图像四周填充 0 边界可以解决这个问题。我们也可以在高步长值的情况下在图像四周填加不只一层的 0 边界。如下图:weight中心直接放到18然后依次54,51(stride=1时)

不填充0时为valid padding,填充0时为same padding (输入输出图像大小相同)

下面是三维立体卷积:

一幅图像不仅有灰度特征,有时我们也想检测它的彩色特征(RGB),我们假设一幅图像为6*6*3,这里的 3 指的是三个颜色通道,用nc表示。你可以把它想象成三个 6×6图像的堆叠。为了检测图像的边缘或者其他的特征,不是把它跟原来的 3×3 的过滤器做卷积,而是跟一个三维的过滤器,它的维度是 3×3×3,这样这个过滤器也有三层,对应红绿、蓝三个通道。

注意4*4中第一个数是由27个数字相加得到,二这27 个数字是由weight对应6*6*3中的左上角的3*3*3立方体对应相乘得到。

这里讲一个输出维度计算问题:

网上例题:

反卷积(上采样)输出特征尺寸公式:W' = (W-1)S+F-2P

二、池化层

有时图像太大,我们需要减少训练参数的数量,它被要求在随后的卷积层之间周期性地引进池化层。池化的唯一目的是减少图像的空间大小。池化在每一个纵深维度上独自完成,因此图像的纵深保持不变。池化层的最常见形式是最大池化(还有均值池化等等)。

如下图:nc有两个术语,通道或者深度

 

  • 16
    点赞
  • 83
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值