卷积神经网络的计算

卷积的概念

卷积的概念:卷积可以认为是一种有效提取图像特征的方法。一般会用一个正方形的卷积核(过滤器),按指定步长,在输入特征图上滑动,遍历输入特征图中的每个像素点。每一个步长, 卷积核会与输入特征图出现重合区域,重合区域对应元素相乘、求和再加上偏置项得到输出特征的一个像素点,如下图所示。

二维矩阵中:6x6的输入通过3x3的卷积核得到输出4x4的特征矩阵
请添加图片描述

二维卷积过程的计算

先计算二维卷积

输出长度计算

Valid卷积(变小)
 输出长度 =   n − f + 1   \ 输出长度 = \ n-f+1 \,  输出长度= nf+1
n为输入矩阵长度,f为卷积核长度,这是在没有填充和和步长为0的基础上计算的输出长度
以上图的输入为例:6-3+1=4

填充(padding)

上述过程中会存在一定的问题,如下图所示,绿框代表的特征在被卷积的过程中只会被利用一次,与紫框差别就很大。那么就会导致边缘信息输出少,丢失图像的边缘位置。解决的办法就是使用填充(padding)。
在这里插入图片描述
在 Tensorflow 框架中,用参数 padding = ‘SAME’或 padding = ‘VALID’表示是否进行全 零填充,其对输出特征尺寸大小的影响如下:

SAME(全零填充):
填充长度是可以自己选定的。填充后卷积长度不变。加入填充P后输出的长度为:
 输出长度 =   n + 2 p − f + 1   \ 输出长度 = \ n+2p-f+1 \,  输出长度= n+2pf+1
若要使得输出长度等于输入长度,p=(f-1)/2
以p=1为例
在这里插入图片描述
我们可以看出,p=1时输出正好等于输入,输入扩充为8x8(以0填充)

加入步长(Strided)

 输出长度 = n + 2 p − f + 1 s + 1   \ 输出长度 = \frac{n+2p-f+1}{s}+1 \,  输出长度=sn+2pf+1+1
s为步长stride

Full反卷积(变大)

膨胀卷积:增加感受野(Receptive Field)
卷积在卷积,能够看到更大的东西
在这里插入图片描述

输出的内容

乘积累加
在这里插入图片描述
p=0,s=2
输出长度=(6+0-3+1/2)+1
2x3+3x4+7x4+6x1+6x0+9x2+3x-1+4x0+8x3=91

  1. List item
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值