卷积神经网络(CNN)加速

CNN加速,原文链接:Speeding up Convolutional Neural Networks

几种加速CNN训练的方法,同时不会对模型最终的准确率有较大的影响。

全连接层是网络占用大量内存的主要原因,但是运行速度却很快,而卷积虽然减少了参数数量,但却需要消耗更多的计算资源,因此,应该从卷积操作本身入手,寻找优化的方法。

以下几种方法可以在不严重影响准确率的前提下加速卷积计算(有些在现有的一些网络中出现过,比如ResNet,DenseNet)

1. 卷积核分解

首先看一个Numpy里面关于矩阵的例子

>>> from numpy.random import random
>>> random((3, 3)).shape == (random((3, 1)) * random((1, 3))).shape
>>> True

我们知道一个N*N的矩阵可以由一个N*1和一个1*N的矩阵相乘得到(线性代数知识),注意,这里是shape相同。通常,一次卷积计算产生的参数个数为input_channels*n*n*output_channels(filter_nums),当把卷积核大小分解成N*1和1*N以后,参数个数就变为2*input_channels*n*output_channels(filter_nums),参数个数减少了,自然计算资源消耗也

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值