您的位置:首页 > 理论基础 > 计算机网络

CNN经典网络中的模型压缩方法

2018-01-15 22:15 375 查看
CNN的模型文件通常比较大,给实际应用带来了困难。为了解决这个问题,人们通常使用模型压缩的方法。本文介绍经典网络中包含的模型压缩方法。

卷积层参数个数计算公式:c_out*c_in*k_w*k_h。从公式可以看到,要想减少卷积层的参数个数,要么使用比较小的卷积核,要么减少通道数。

VGG相比于AlexNet,一个显著的特点就是卷积核的尺寸从7x7缩小为3x3,从而减少了网络的参数个数。卷积核感知域变小带来的网络容量问题可以用叠加卷积层解决。对于一般通常意义的卷积运算而言,3x3的卷积核已经是极限。

GoogleNet的一个Inception中,每条路都经过一个1x1的卷积。这个1x1的卷积可以为后面的层操作降低输入通道数c_in。

Resnet相比于GoogleNet在使用1x1的卷积上更进了一步。在一个bottleneck结构中,残差支路有三个卷积层,一头和一尾都是1x1的卷积。第一个1x1卷积为中间的“正常”卷积减少输入通道数,一般是减3/4,或者减半(卷积组的第一个时)。后一个1x1卷积起到增加feature map的通道数的作用,使得中间的“正常”卷积的输出通道数可以减3/4,或者减半(连接下一个卷积组时)。

MobileNet中使用了可分离卷积:通道卷积(deepwise convolution)+ 单像素卷积(pointwise convolution)。其中单像素卷积的参数占大部分,参数个数是一般卷积的1/(k_w*k_h);通道卷积的参数个数等于c_out*1*k_w*k_h,一次只使用一个输入通道做卷积运算,使得计算量和参数个数是一般卷积的1/c_in。注意,这里的1x1卷积的作用是通道间的加权,尽管它间接将前面的通道卷积的输入通道数降为1,它跟上面存粹用于减少输入或输出通道数的1x1卷积还是不一样的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: