filter map和卷积层的理解

       在一个卷积层中,过滤器所处理的节点矩阵的长和宽都是由人工指定,此节点矩阵的尺寸也称之为过滤器的尺寸。常用的过滤器尺寸有3*3或5*5。因为过滤器处理的矩阵深度和当前层神经网络的深度是一致的,所以虽然节点矩阵是三维的,但是过滤器的尺寸只需要指定两个维度,即3*3*网络深度或5*5*网络深度。

    过滤器中另外一个需要人工指定的设置处理得到的单位节点矩阵的深度,此设置称为过滤器的深度(此深度=过滤器的个数=feature map的个数)。

    注意过滤器的尺寸指的是一个过滤器输入节点矩阵的大小,而深度指的是输出单位节点矩阵的深度。如图1中,左侧小矩阵的尺寸为过滤器的尺寸,而右侧单位矩阵的深度为过滤器的深度。

 

out_1=Conv2d(input=image, filter=32, kernel_size=(3,3), strides=(1,1));//卷积层
       relu_out=relu(out_1);                                       //利用激活函数ReLU去线性化
       pool_out=MaxPool(relu_out, kernel_size=(2,2), strides=2);//最大池化降维
       很容易理解,上面的结果是一系列的具有32层深度的过滤器。我们不知道的是,该如何将具有3个信道的图像精确地映射到这32层中!另外,我们也不清楚该如何应用最大池(max-pool)操作符。例如,是否一次性将最大池化应用到了所有的过滤层中以有效地生成一个单一的过滤映射?又或者,是否将最大池独立应用于每个过滤器中,以产生相同的32层的池化过滤器?
       具体如何做的呢?
       一图胜千言,下图可以显示上述代码片段中所有的操作。

 

观察上图,可以看到最显著的一点是,步骤1中的每个过滤器(即Filter-1、Filter-2……)实际上包含一组3个权重矩阵(Wt-R、Wt-G和WT-B)。每个过滤器中的3个权重矩阵分别用于处理输入图像中的红(R)、绿(G)和蓝(B)信道。在正向传播期间,图像中的R、G和B像素值分别与Wt-R、Wt-G和Wt-B权重矩阵相乘以产生一个间歇激活映射(intermittent activation
 map)(图中未标出),然后将这3个权重矩阵的输出(即3个间歇激活映射)相加以为每个过滤器产生一个激活映射(activation map)。
       随后,这些激活映射中的每一个都要经过激活函数ReLu去线性化,最后到最大池化层,而后者主要为激活映射降维。最后,我们得到的是一组经过激活函数和池化层处理后的激活映射,现在其信号分布在一组32个(过滤器的数量)二维张量之中(也具有32个feature map,每个过滤器会得到一个feature map)。
       来自卷积层的输出经常用作后续卷积层的输入。因此,如果我们的第二个卷积单元如下:
       conv_out_2 = Conv2d(input = relu_out,filters = 64)
       那么框架就需要实例化64个过滤器,每个过滤器使用一组32个权重矩阵。
 

 

参考链接:https://blog.csdn.net/allenlzcoder/article/details/78739346

学习链接1:https://blog.csdn.net/paoxungan5156/article/details/83151370

学习链接2:https://blog.csdn.net/anthea_luo/article/details/80631620

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值