卷积核的深度与当前图像的深度相同(即通道数保持相同)。指定卷积核时,只需要指定长宽两个参数,其通道数会默认与当前作用图像的通道数相同。
1*1卷积是大小为1*1的滤波器做卷积操作,不同于2*2、3*3等filter,没有考虑在前一特征层局部信息之间的关系。
卷积核:可以看作对某个局部的加权求和,它是对应局部感知,它的原理是在观察某个物体时我们既不能观察每个像素也不能一次观察整体,而是先从局部开始认识,这就对应了卷积。卷积核的大小一般有1x1,3x3和5x5的尺寸。卷积核的个数就对应输出的通道数,这里需要说明的是对于输入的每个通道,输出每个通道上的卷积核是不一样的。比如输入是28x28x192(WxDxK,K代表通道数),然后在3x3的卷积核,卷积核数量为128,那么卷积的参数有3x3x192x128,其中卷积截面大小为3*3,单个卷积的通道数是192,共128个卷积核。
卷积核的通道数应和输入的feature map的通道数一致,feature map通过卷积操作后得到的通道数则是卷积核filter的个数,即所使用卷积核的个数。
1.来源
Network In Network论文
最早出现在 Network In Network的论文中 ,使用1*1卷积是想加深加宽网络结构 。
如果1×1卷积核接在普通的卷积层后面,配合激活函数,即可实现network in network的结构。
2.应用
GoogleNet中的Inception、ResNet中的残差模块。
Inception举例
在Inception网络(论文Going Deeper with Convolutions)中图像输入进来后,通常可以选择直接使用像素信息(1x1卷积)传递到下一层,可以选择3x3卷积,可以选择5x5卷积,还可以选择max pooling的方式downsample刚被卷积后的feature maps。 但在实际的网络设计中,究竟该如何选择需要大量的实验和经验的。 Inception就不用我们来选择,而是将4个选项给神经网络,让网络自己去选择最合适的解决方案。但是这些卷积滤波器的设计也会在计算上造成很大的消耗,由于3*3卷积或者5*5卷积在几百个filter的卷积层上做卷积操作时相当耗时,所以1*1卷积在3*3卷积或者5*5卷积计算之前先降低维度。
普通的Inception模块:
从下往上看,本层输入的feature map 是28*28*192 。
注:卷积核的通道数与输入的feature map一致,而卷积核的个数与输出channel一致。
输入feature map | 卷积核大小 \ 卷积核参数 | 通道数 | 个数 | 卷积操作所生成的通道数 | 输出feature map |
28*28*192 | 1*1 | 192 | 64 | 64 | (28*28)*64 |
28*28*192 | 3*3 | 192 | 128 | 128 | (26*26)*128 |
28*28*192 | 5*5 | 192 | 32 | 32 | (24*24)*32 |
注: 卷积核通道数默认与所作用的feature map通道数相同,使用时也不写通道数,只写filter个数(即卷积核数量)。 图中红色部分channel个数可以理解为,是该卷积核与输入feature map作用完之后所生成的feature map 的通道数(channel个数)。或者理解为,是当前卷积核的个数(filter数)。
表格中 最后一列 输出feature map是 假设步长为1,padding=0,各卷积核作用后所生成的feature map,主要是想表现出卷积操作前后通道数的变化,无其他意义。
参数量:(1×1×192×64) + (3×3×192×128) + (5×5×192×32) = 153600
最终输出的feature map个数:64+128+32+192 = 416
(feature map尺寸是指 W、H是权值共享的sliding window,feature map的数量就是channels)
池化层不引人参数!
feature map个数就是filter个数,一个滤波器在前一个feature map上进行一次卷积操作(特征抽取)会产生一个feature map或者叫通道、深度。
加入1*1卷积的inception模块:
在3*3,5*5 卷积层前新加入的1x1的卷积核数量为96和16个的,max pooling后加入的1x1卷积核数量为32。
图中该层的参数:
(1×1×192×64)+(1×1×192×96+3×3×96×128)+(1×1×192×16+5×5×16×32)+(1x1x32)=15904
最终输出的feature map个数: 64+128+32+32=256
(feature map尺寸是指 W、H是权值共享的sliding window,feature map的数量就是channels)
通过对比是否添加了1*1卷积核的两个inception模块,可以看到生成的feature map个数(即通道数)从416降低至256 ,参数量也大大降低。
所以,加入1×1的卷积后,在降低大量运算的前提下,降低了维度。
ResNet中残差模块举例
假设输入的feature map是w*h*256,并且最后要输出的是256个feature map。
(为追求两者一致性,需要把左侧图的64都改成256,且中间只有一层3*3*256的卷积层)
先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前在阿里
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
**
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新