首页 > 编程知识 正文

cnn卷积神经网络比较,卷积神经网络结构

时间:2023-05-05 06:54:28 阅读:143863 作者:1946

CNN卷积神经网络中stride、padding、channel及特征图大小的计算1. stride步幅2. padding填充3. channel通道4 .计算与示例

1 .步幅步幅步幅:卷积时的采样间隔

步幅的目的是减少输入参数的数量,减少计算量。 stride参数的值是缩小的倍数,例如,如果步幅为2,则对输入的特征图进行2倍下采样。 请注意,步幅并不意味着输出是输入的1 s t r i d e frac{1}{stride} stride1

2 .填充填充填充:在输入特性图的每一边添加一定数量的矩阵,以使输出和输入特性图的大小相同。

为什么要设定padding :

如果没有padding,则每次进行卷积时,原始图像的大小都会变小,因此无法设计足够层数的深度神经网络。 希望将各输入特征图的各块作为卷积窗口的中心,以免丢失图像的边缘信息。 在tensorflow中:

padding='same '意味着进行填充,填充的值在算法内部基于卷积内核大小计算,目的是使输出大小和输入相等。

padding='valid '表示不进行填充。 也就是说,padding=0,仅使用有效的窗口位置。 这是默认选项。

PD ding=size _ filter 12 padding=frac { size _ _ filter-1 } {2} padding=2size _ filter 1

因此,卷积核尺寸通常选择奇数

另外,padding='same '的目的是使输出大小和输入大小相等,但前提是步幅=1,如果步幅不是1,则输出大小和输入大小一定不同

3 .如果只有一个信道是信道,则“卷积核”对应于“filter”,并且这两个概念可以互换。 但是,一般来说,它们是两个完全不同的概念。 每个“过滤器”实际上正好是“卷积核”的集合,在当前层中每个信道对应于卷积核,该卷积核是唯一的。

在卷积过程中,输入层有多少个通道,过滤器有多少个通道?

也就是说,某个阶层的filter的频道数=前一阶层的特征地图的频道数。

一般的图像是3通道,所以卷积核也应该是3通道。 例如,对于32x32x3的图像,如果使用5x5x3的卷积核,最终得到28x28x1的特征图。

然而,filter的数目是任意的,并且卷积后的特征量图的数目由filter的数目确定。

也就是说,一个层输出配置文件中的通道的数量=当前层中的过滤器的数量

4 .计算及示例:一个尺寸a*a的特征图经过b*b的卷积层,步幅(stride )=c,填充) padding )=d,请计算输出特征图的尺寸? 输出特性图大小=aB2DC1=FRAC{a-B2D}{c}1=cab2D1

记住这个公式就可以计算所有输出特性图的大小。

例如:输入4*4、卷积核3*3、stride=1、padding=0输出大小=(4-3 0 )/1=2

例如:输入5*5,卷积核3*3,stride=1,padding=1输出大小=(5-3 2 )/1=5

例如:输入5*5、卷积核3*3、stride=2、padding=0输出大小=(5-3 0 )/2 1=2

示例6*6、卷积核3*3、stride=2、padding=1输出大小=int(6-32 )/2 ) 3注意:此处的padding包含与卷积无关的列。 无法对该列进行采样,因为stride为2

总结:

卷积可能需要padding避免信息丢失,也可能需要设置stride来压缩部分信息,或者使输出大小小于输入大小。

本文参考以下文章进行了整理:

详细理解CNN中的stride (步幅)和padding (步幅)

卷积神经网络中的stride、padding、channel概念

CNN基础知识——卷积、填充、步骤Stride )。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。