有这么多的深度学习库可供我们选择。
哪些是值得学习的、好的专业库,而哪些又是应该避免的边缘项目,我们应该如何区分。
在这篇文章中,你将会找到自己的深度学习项目中最该学习和使用的顶级深度学习库。
让我们开始吧。
概述
在这篇文章中,你将会了解到以下深度学习库。所有的开源项目都使用各种不同的许可证。
- Theano
- Torch
- Caffe
- DeepLearning4J
当然,还有许多其他优秀的库和平台。一些更多的佳作包括由谷歌开发 TensorFlow ,R语言的 Darch ,JavaScript 的 Convnet.js (用于学习),Julia 的 Mocha,有微软开发的 CNTK 和 H2O 这种 Web API。
Theano
Theano 是由 LISA 小组(现在的 MILA )开发的一个 Python 框架,由蒙特利尔大学的 Yoshua Bengio 这位大牛来负责研究和开发最先进的深度学习算法。
最好将其描述成一个数学表达式的编译器,你可以在里面显式定义所需的内容,并且你的程序使用这个框架编译后,可以在GPU或CPU上很高效地运行。
这是一个不局限于深度学习的研究平台,所以你必须自己做很多工作来创建你想要的模型。例如,这里就没有神经网络相关的类。
不过,这里有一个很好的深度学习教程,会向你展示如何创建用于深度学习的类和函数。例如,它提供了分步示例来创建以下深度学习算法:
- 深度卷积网络
- 多层降噪自动编码器
- 深度信念网络
在线查看整个教程或下载PDF版本
Theano 真的是一个生态系统,事实上你不会直接使用 Theano 。在 Theano 之上建立了很多库,提供了很多包装后使用很方便的API。一些很受欢迎的项目如下:
- Keras
- Lasagne
- Blocks
- Pylearn2(已失效)
这些正茁壮成长的项目,为底层的 Theano 平台提供了很多有用的API,大大加快了你将模型混合使用起来的速度。
如果你是一名 Python 开发人员,并对更广泛的深度学习或研究感兴趣,那么这就是你的平台。
资源
- Theano 主页
- Theano Github 项目
Torch
Torch(使用奇数版本号的话称为 Torch7)是由 Ronan Collobert ,Clement Farabet 和 Koray Kavukcuoglu 开发的一个Lua深度学习框架,用于深度学习算法的研究和开发。它被纽约大学-CILVR实验室使用和推广。
Torch 现在由 Facebook AI 实验室,Google DeepMind,Twitter和其他人使用与进一步开发。
Torch 底层利用 C / C 库以及 CUDA 以达到 GPU 的良好效率。也是因为速度指标,它采用C语言友好的 Lua 来提供一个不太原始的界面。
Torch 的目标是在建立科学算法的同时,使整个过程变得非常简单,并且拥有最大的灵活性和速度
虽然有很多的文档,但都是一团糟。Torch 的常用于卷积神经网络的图像检测问题或者是更加复杂领域里深入强化学习的代理。
如果你主要对强化学习感兴趣,那么 Torch 可能就是你的平台。
资源
- Torch 官方主页
- Torch Github 项目
- Torch 文档和备忘录 (社区维基)
Caffe
Caffe 是一个 Python 深度学习库,由伯克利视觉和学习中心的 Yangqing Jia 为计算机视觉监督问题而开发。
它主要关注的是卷积神经网络,而在这方面可能是世界领先的。
这个库的一个很大的好处就是可以从 Caffe Model Zoo 下载的一定数量的预训练网络,然后可以立即投入使用。这里面还包括最先进的模型,可以让你在标准计算机视觉数据集上得到世界级结果。
而且这里还有一些世界一流模型的教程:
- 使用 Caffe 实现 Alex 的 CIFAR-10 模型
- 使用 Caffe 在 MNIST 上训练 LeNet
- 使用 Caffe 实现 ImageNet
如果你主要关注卷积神经网络和图像问题,Caffe可能是你的平台。
资源
- Caffe 主页
- Caffe Github 项目
DeepLearning4J
DeepLearning4J(简称DL4J)是由 Adam Gibson 由Java(以及JVM语言)开发的深度学习框架,用于商业的深度学习项目。
DL4J是基于JVM的,以行业为中心并提供商业支持的分布式深度学习框架,旨在在合理的时间内解决涉及大量数据的问题
DeepLearning4J 是一个平滑的平台,它提供了一套先进的深度学习算法,不仅限于:
- 深度信仰网络
- 多层降噪自动编码机
- 卷积神经网络
- LSTM
- 循环神经网络
而且平台的文档相当不错,涵盖了一系列的主题,包括算法本身的一些理论知识以及对应的代码示例。
因为背后有作为主流业务软件开发的整个Java生态系统(包括JVM上的其他语言(例如Scala)以及大数据平台(Hadoop和Spark))做支撑,它具有无可比拟的优势。
资源
- DeepLearning4J 主页
- DeeplLearning4J GitHub 项目
- DeepLearning4J 相关支持
深度学习工具综述
很多人对深入学习的库和工具都有一个大概的了解。本节列出了一些这些综述和其他资源,你可以尽情地使用这些资源来探索深入学习。
- KDDNuggets 有一个名为“流行的深度学习工具“ 的一篇文章,其中了包含2015年调查结果的综述。看起来 Pylearn2 和 Theano 是最受欢迎的。
- DL4J 比较了所有名列前茅的工具 DL4J vs. Torch vs. Theano vs. Caffe vs. TensorFlow
- Quora文章 现阶段最好的处理大数据的深度学习库是什么? 是一篇非常有见地的概述。
- Teglor 不同语言的深度学习库 是一篇非常不错的总结
- DeepLearning.net 列举出了很好的深度学习软件。
- 在 reddit 上,有一个很好的讨论,标题为 深度神经网络的最佳框架
- 开源的深度学习项目列表 100个最好的GitHub项目 — 深度学习篇。
综述
在这篇文章中,你将学习到最受欢迎的深度学习工具和库。
具体来说,你了解了:
- Theano
- Torch
- Caffe
- DeepLearning4J