卷积神经网络改进算法,卷积神经网络的网络结构

卷积神经网络作为一种前馈神经网络,其神经元可以响应一部分覆盖范围内的周围单元,主要用于处理大型图像。 在结构中包括卷积层和池化层。其在组合过程中,元素的数量会逐层递减,但随着运算单元的增多,其运算参数数量也会增多,毕竟运算参数的数量决定了其感知能力,所以压缩起来的难度相对较大,为了保证计算的正确性,对于运算参数的压缩只能压缩一部分参数,但也有限。个人理解,有误勿喷。

为什么要用GPU来训练神经网络而不是CPU?

为什么要用GPU来训练神经网络而不是CPU?

其实CPU和GPU一样可以训练神经网络。实际上,在早期,神经网络都是用CPU训练的。即使现在,像TensorFlow这样的流行框架也支持在CPU上运行。

那么,既然CPU和GPU都可以训练神经网络,为什么一般用GPU训练神经网络?很简单,因为GPU比CPU快很多。

比如,Victor Dibia(IBM研究院Research Staff Member)基于Tensorflow框架训练了一个实时检测手部的网络。

卷积神经网络改进算法,卷积神经网络的网络结构

训练这样一个神经网络要花多久?

CPU上大约要12天,而GPU上则是5小时

我们这里不讨论具体的型号,关键是两者的比例。CPU和GPU的差距太大了。

而且,实际上这个神经网络的训练时间已经通过迁移学习大大缩短了。迁移学习指直接拿训练好的图像分类的模型来用,只是重新训练最后一层或几层网络以检测手部,所以能快很多。

那如果从头开始训练的话(有的时候没有现成的模型可供迁移),可能要几周甚至几个月。这还是GPU的情况。

按照上面的比例,换算成CPU,那基本上就太慢太慢,慢到不现实的程度。

GPU之所以比CPU快好多,主要是因为,从运算的角度来看,神经网络主要是由大量的浮点矩阵构成的。而现代的神经网络,可能有几千到几百万的浮点矩阵(所谓深度学习),因此需要很大的内存带宽来访问这些海量的浮点矩阵。而GPU的内存带宽比CPU高很多。比如Intel的Core i9-7980XE内存带宽约为57GB/s,而NVIDIA的Tesla P100带宽高达900GB/s。

卷积神经网络改进算法,卷积神经网络的网络结构

上图为各代CPU和GPU的带宽比较(来源:Karl Rupp)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 xxx@163.com 举报,一经查实,本站将立刻删除。

发表评论

登录后才能评论