CNN训练加速

卷积加速 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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值