CNN卷积神经网络中的stride、padding、channel以及特征图尺寸的计算 |
您所在的位置:网站首页 › 特征尺寸计算 › CNN卷积神经网络中的stride、padding、channel以及特征图尺寸的计算 |
CNN卷积神经网络中的stride、padding、channel以及特征图尺寸的计算
1. stride步幅2. padding填充3. channel通道4. 计算及例子
1. stride步幅
stride:卷积时的采样间隔 设置步幅的目的是希望减小输入参数的数目,减少计算量。stride参数的值就是缩小的倍数,比如步幅为2,就对输入的特征图做2倍下采样,注意步幅并不代表输出是输入的 1 s t r i d e \frac{1}{stride} stride1 2. padding填充padding:在输入特征图的每一边添加一定数目的行列,使得输出和输入的特征图的尺寸相同。 为什么要设置padding: 如果没有padding,每次进行卷积后,原始图像的尺寸就会越来越小,所以没有办法设计层数足够多的深度神经网络。希望每个输入特征图的每一块都能作为卷积窗口的中心,防止丢失图像边缘信息。在tensorflow中: padding = 'same'表示进行填充,填充的值由算法内部根据卷积核大小计算,目的是让输出尺寸和输入相等。 padding = 'valid'表示不进行填充,即是 padding=0,只使用有效的窗口位置,这是默认的选项。 p a d d i n g = s i z e _ f i l t e r − 1 2 padding = \frac{size\_filter - 1}{2} padding=2size_filter−1 这就是为什么卷积核尺寸通常选择奇数的原因 还要注意padding='same'目的是让输出尺寸和输入尺寸相等,但前提是步幅=1,步幅若不是1,那么输出尺寸跟输入尺寸肯定是不一样 3. channel通道在只有一个通道的情况下,“卷积核”就相当于“filter”,这两个概念是可以互换的。但在一般情况下,它们是两个完全不同的概念。每个“filter”实际上恰好是“卷积核”的一个集合,在当前层,每个通道都对应一个卷积核,且这个卷积核是独一无二的。 卷积过程中,输入层有多少个通道,filter就有多少个通道。 即:某一层filter的通道数 = 上一层特征图的通道数。 一般的图像都是三通道的,所以卷积核也应该为三个通道。比如对于32x32x3的图像,使用一个5x5x3的卷积核,最终会得到一个28x28x1的特征图。 但是filter的数量任意的,filter的数量决定了卷积后特征图的数量。 即:某一层输出特征图的通道数 = 当前层filter的个数 4. 计算及例子 例:一个尺寸 a*a 的特征图,经过 b*b 的卷积层,步幅(stride)=c,填充(padding)=d,请计算出输出的特征图尺寸?输出特征图尺寸 = a − b + 2 d c + 1 =\frac{a - b + 2d}{c} + 1 =ca−b+2d+1 只要记住这个公式,就可以计算所有输出特征图的尺寸了。 例:输入4*4,卷积核3*3,stride = 1,padding = 0 输出尺寸 = (4-3+0)/1 + 1 = 2总结: 卷积过程中,有时需要通过padding来避免信息损失,有时也要通过设置stride来压缩一部分信息,或者使输出的尺寸小于输入的尺寸。 本文参考以下文章整理而来: CNN中stride(步幅)和padding(填充)的详细理解 卷积神经网络中的stride、padding和channel概念 CNN基础知识——卷积(Convolution)、填充(Padding)、步长(Stride) |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |