0
点赞
收藏
分享

微信扫一扫

CNN训练加速

船长_Kevin 2022-01-26 阅读 122

卷积加速 Bottleneck Layers

ref:https://blog.csdn.net/kobbbb/article/details/89741210

Bottleneck,瓶颈,顾名思义,输入和输出通道数保持,但是在中间进行卷积时,将通道数缩小从而达到减少参数的目的,可以看一下下面这段Keras代码

from keras.layers import Conv2D
# given that conv1 has shape (None, N, N, 128)
conv2 = Conv2D(96, (1, 1), ...)(conv1) # squeeze
conv3 = Conv2D(96, (3, 3), ...)(conv2) # map
conv4 = Conv2D(128, (1, 1), ...)(conv3) # expand

如果直接通过一个12833的卷积层,那么需要的参数个数是12833128=147456,进行Bottleneck后的参数个数为1281196+963396+9611128=107520,可以看到,参数个数减少了4w多个。当前一些著名网络都有使用这种方法,像ResNet和DenseNet等等。

通过这个方法,我的learnable parameter从40w个减少到了9w个,同时误差从0.021上升到了0.03

遗憾的是,训练时间并没有显著减少, 反而有所增加。我的猜测是参数虽然减少,但是网络收敛变慢,因此误差和准确度都下降了。

举报

相关推荐

0 条评论