码迷,mamicode.com
首页 > 其他好文 > 详细

1*1卷积浅析

时间:2020-11-06 02:17:20      阅读:22      评论:0      收藏:0      [点我收藏+]

标签:核数   网络层   很多   png   image   应用   hidden   结构   实现   

1*1shape的卷积在很多神经网络中都有应用(如Google InceptionNet,Resnet等),比起我们常见的2*2,3*3,5*5的卷积,这样的卷积核有什么作用呢?

首先,1*1的卷积可以增加网络层的非线性,它的卷积过程其实相当于全连接层的计算过程,并且还加入了非线性的激活函数(relu等),从而使网络结构变得更加的复杂。

其次,1*1的卷积加入可以通过控制卷积核的数量达到放缩通道数大小的目的,从而实现特征降维,以实现参数和计算量的减少。

下面举一个引入1*1和不引入1*1卷积的例子:

1.不引入1*1卷积:

  input(28*28*192)→(conv(5*5*32,same))→output(28*28*32)

  计算参数量:(28*28*32)*(5*5*192)≈120M

2.引入1*1卷积:

  input(28*28*192)→(conv*(1*1*16))→hidden(28*28*16)→(conv(5*5*32,same))→output(28*28*32)

  计算参数量:(28*28*16)*192+(28*28*32)*(5*5*6)≈12.4M

  约减少了十倍计算量

又如Google InceptionNet:

最初始版本的inceptionNet结构如下:

技术图片

 

 改进后的结构如下:

技术图片

 

假设previous layer层的大小为28*28*192,非1*1卷积层核数按顺序分别为(64,128,32),黄色1*1卷积层核数分别为(96,16,32)则有:

图一:weight:1*1*192*64+3*3*192*128+5*5*192*32=387072

   featuremap:28*28*64+28*28*128+28*28*32+28*28*192=28*28*416

图二:weight:1*1*192*64+(1*1*192*96+3*3*96*128)+(1*1*192*16+5*5*16*32)+1*1*192*32=163328

   featuremap:28*28*64+28*28*128+28*28*32+28*28*32=28*28*256

由此可证明,1*1的卷积核可以在增加网络结构复杂性的同时实现特征降维。

 

1*1卷积浅析

标签:核数   网络层   很多   png   image   应用   hidden   结构   实现   

原文地址:https://www.cnblogs.com/zdm-code/p/13932779.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!