深度学习工具

深度学习工具

目前比较流程的深度学习工具主要有Caffe,Torch & Overfeat,MxNet,TensorFlow,Theano等。

Caffe

Caffe(快速特征植入的卷积神经网络),有伯克利视觉和学习中心开发的基于C++/CUDA/Python实现的卷积神经网络框架,提供了面向命令行、Matlab和Python的绑定接口。其前身为DeCAF,作者为贾杨清。

Caffe特性:

  • 它实现了前馈卷积神经网络架构(CNN),而不是递归网络架构(RNN)
  • 速度快,原因是利用了MKL、OpenBLAS、cuBLAS等计算库,支持GPU加速。
  • 适合做特征提取,实际上适合做二维图像数据的特征提取。
  • 完全开源,遵循BSD-2协议。
  • 提供了一整套工具集,可用于模型训练、预测、微调、发布、数据预处理,以及良好的自动测试
  • 它带有一系列参考模型和快速上手例程
  • 它在国内外有比较活跃的社区,有很多衍生吧项目,如Caffe for Windows、Caffe with OpenCL、NVIDIA DIGITS2、R_CNN等。
  • Caffe代码组织良好,可读性强,通过掌握Caffe代码可以很容易学习其他框架。

综上,Caffe是深度学习初学者入门的首先。

Torch & OverFeat

Torch是一个出现较早的支持大部分机器学习算法的科学计算框架。目前已有四个版本,分别为Torch 1、Torch 3、Torch 5、Torch 7。Torch使用轻量脚本语言Lua及其C/CUDA扩展模块实现,底层数值计算通过高效的OpenMP/SSE/CUDA加速,同时具备灵活性和速度优势。得益于Lua的轻量接口,Torch可以很容易接入第三方软件。

Torch为机器学习提供了类似于Matlab的环境,目前纽约大学(NYU)、Facebook AI实验室和Google DeepMind Torch均使用该框架做深度学习研究。**Torch不仅支持CPU/GPU上运行,甚至支持嵌入式设备如iOS、Android、FPGA。
**
Torch完全开源,遵循BSD协议,主要内置8个包:

torch:主包,提供Tensors基本数据类型和操作、简单的序列化接口和其他基本功能。

lab & plot:提供标准的类似于Matlab的函数,用于创建、变换、打印Tensors。

qt – Qt和Lua的完全绑定,实现Torch 7 Tensors和QImage之间的透明转换,美观的图形界面非常适合快读开发交互式演示程序。

nn:提供了一组标准神经网络模块,以及一组容器模块,可用于定义任意有向(无环或有环)图。显示描述图结构,使用可插入模块,避免了复杂的图解析器,或者其他中间件编译器。

image:图像处理包,提供了所有标准图像处理函数(如载入/保存图像、缩放/旋转、色彩空间变换、卷积、高斯核等)。

optim:提供最陡下降法、共轭梯度法和有限内存下BFGS等优化算法包。

unsup:包括几个非监督学习算法,如K-means、稀疏编码、自动编码器。

third-party:进一步封装,增加便携的软件包。

MxNet

MxNet是一个面向效率和灵活性设计的深度学习框架,吸引了多种不同框架优点,加入了更多新的功能,如更加方便的多卡和多机分布式运行,目前MxNet比cxxnet块40%,而且GPU显存使用少了一半。

MxNet提供了两种编程接口:

N维数组接口,类似于Matlab或Python中的numpy.ndarray或torch.tensor。它独有的优势在于通过背后的engine可以在性能和内存使用上优于其他框架。

符号接口,可以快速构建一个神经网络,实现自动求导功能。

目前MxNet还在快速发展中,以后目标是更多的语言绑定(目前支持比较好的是Python,马上会有Julia和R)、更好的文档和更多的应用(语言建模、语音、机器翻译、视频)发展

TensorFlow

Google在2011年推出人工深度学习系统——DistBelief。通过DistBelief,Google能够扫描数据中心数以千计的核心,并建立更大的神经网络。这个系统将Google应用中的语音识别率提高了25%,以及在Google Photos中建立了图片搜索,并驱动了Google的图片字幕匹配实验。DistBelief还存在不少不足和限制。它很难被设置,和Google内部的基础设施联系也过于紧密,这导致研究代码机会不可能分享。

针对以上问题,Google在2015年Google Research Blog宣布推出新一代人工智能学习系统——TensorFlow。

TensorFlow是一个异构分布式系统上的大规模机器学习框架,移植性好(小到移动设备如手机,大到大规模集群,都能支持),支持多种深度学习模型。根据Google说法,TensorFlow是综合的、灵活的、可移植的、易用的,更为关键的,它是开源的。同时,TensorFlow的速度相比前代DistBelief有了不小的提升,在一些跑分测试中,TensorFlow的得分是第一代系统的两倍。尽管如此,TensorFlow的效率仍然比不过其他大部分开源框架。不过,随着TensorFlow源码逐步开放,对新硬件、新设备、新的加速如cuDNN的支持力度不断提升,其成为目前极具潜力的深度学习。

Theano

Theano是由LISA开发的基于Python的深度学习框架,可以定义好数学表达式并高效地优化,求值。

Theano支持机器学习中的逻辑回归、多层感知器、深度卷积网络等监督学习方法,以及自编码器、降噪自编码器、限制玻尔兹曼机、深度置信网络等非监督/半监督学习方法,在国内外教育领域非常受欢迎。Thenao有个致命的短板,就是计算速度慢,虽然有GPU加速,但仍然不如其他框架高效,故只适合研究人员使用,不适合线上环境部署。

CNTK

CNTK是微软推出的开源深度学习框架,通过一系列步骤构成有向图来表达网络。

CNTK的优点是高性能、高灵活性、可扩展性好。CNTK支持CNN、LSTM、RNN等流行的网络结构,支持分布式训练。在纯CPU、单GPU、多GPU、多机多GPU硬件平台下都具有较高的性能

CNTK支持双机8 GPU并行处理,而其他框架只支持单GPU或单机多GPU(TensorFlow、Torch 7 Caffe)。从单GPU对比性能来看,Theano是性能最低的,而CNTK、Torch、Caffe相差不大。单机4 GPU的性能对比结果显示了CNTK具有极高的效率GitHub上也有对常见的深度学习框架卷积计算性能对比情况。

虽然CNTK有上述优点,但同时要看到微软对自家Windows支持不遗余力,导致CNTK对Windows平台支持最好,不推荐作为深度学习初学者入门工具,而是选择拥有更大的社区的Caffe。


参考文献: 深度学习-21天实战caffe

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值