那些流行的深度学习库

2018-02-05 10:57:15 浏览数 (1)

现在深度学习非常热门,而深度学习的库也如雨后春笋般涌现出来。

入门者很难分辨哪些是值得我们学习的优秀库,哪些是一些应该避开的二流库。

在这篇文章中,你会将发现适合在自己学习和完成项目的最好的深度学习库。Let‘s go!

概述

在这篇文章中,将介绍以下开源的深度学习库(许可证各异)。

  • Theano
  • Torch
  • Caffe
  • DeepLearning4J

还有许多其他优秀的库和平台,如谷歌的TensorFlow,R语言的darch,JavaScript的Convnet.js,Julia的Mocha,微软的CNTK,还有H2O。

Theano

Theano是由LISA小组(现在的MILA)开发的一个Python框架,由蒙特利尔大学的Yoshua Bengio负责研究和开发最先进的深度学习算法。

Theano更像是一个数学表达式编译器,编译你所定义的内容,使程序能在GPU或CPU上高效运行。

这是一个比深度学习库更多内容的研究平台。你必须自己做很多工作来才能创建初你想要的模型。如,Theano并不像其他深度学习库一样拥有神经网络类。

不过,它一个很好的深度学习教程,展示了如何创建用于深度学习的类和函数。例如,它提供了分步示例来创建以下深度学习算法:

  • 深度卷积网络(Deep Convolutional Network)
  • 堆叠去噪自编码器(SdA)(Stacked Denoising Auto-Encoders)
  • 深度信念网络(DBN)(Deep Belief Networks)

在线查看整个教程或下载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实验室(Yann LeCun的所在)使用和推广。

而现在,Torch在Facebook AI实验室,Google DeepMind,Twitter和其他人的使用过程中被进一步开发。

Torch利用C / C 库和GPU的CUDA,拥有一定的速度优势。其采用与C类似的语言Lua提供了至少不会吓到人的接口。

Torch的目标是在建立科学算法的同时,使这个过程变得更加简单,同时具有最大的灵活性和速度。

Torch有很多的文档,不过这些文档一团乱麻。Torch普遍应用于卷积神经网络的监督图像问题和更复杂领域中的Agent进行深度强化学习。

如果你主要对强化学习感兴趣,那么Torch就是你的平台。

资源

  • Torch 官网
  • Torch Github
  • Torch 文档(Github Wiki)

Caffe

Caffe是一个世界上数一数二的Python深度学习库,主要面向卷积神经网络,由伯克利视觉和学习中心的贾扬清为监督计算机视觉问题而开发。

这个库的一大优点就是可以从Caffe Model Zoo下载的预先训练好的网络,非常多的的训练好的模型让你可以马上使用,其中包括可以在标准计算机视觉数据集上实现世界一流结果的最先进的模型。

例如,这里是一些世界一流的模型的教程:

  • Alex的Caffe CIFAR-10教程
  • 用Caffe在MNIST上训练LeNet
  • ImageNet与Caffe

如果您主要关注卷积神经网络和图像问题,那么Caffe就是你的平台。

资源

  • Caffe 官网
  • Caffe Github

DeepLearning4J

DeepLearning4J(简称DL4J)是由Adam Gibson使用Java开发的深度学习框架,用于商业深度学习项目。

DL4J是基于JVM的,以行业为中心的,允许商用的分布式深度学习框架,旨在在合理的时间内解决涉及大量数据的问题。

DeepLearning4J是一个灵活的平台,它提供了一套先进的深度学习算法,包括但不限于:

  • 深度信念网络(DBN)
  • 堆叠去噪自编码器(SdA)
  • 卷积神经网络(CNN)
  • 长短期记忆网络(LSTM)
  • 循环神经网络(RNN)

DL4J的官方文档相当不错,涵盖了一系列主题,包括了算法本身的一些理论和代码示例。

DeepLearning4J在整个Java生态系统,包括JVM上的其他语言(例如Scala)以及大数据平台Hadoop和Spark等这些主流平台上开发商业软件时拥有强大的竞争力。

资源

  • DeepLearning4J 官网
  • DeeplLearning4J Github
  • 支持 DeepLearning4J

深度学习工具综述

很多人都做了深度学习库和工具的综合讨论比较。本小节列出了一些其他人的讨论和资源,可以使用这些资源继续深入学习深度学习工具。

  • KDDNuggets做了一个关于“深度学习工具”总结,流行的深度学习工具一览,包含2015年调查结果的总结,文中认为Pylearn2和Theano是最受人们欢迎的。
  • DL4J比较了所有名列前茅的工具DL4J vs. Torch vs.Theanovs. Caffe vs. TensorFlow。
  • Quora中一个非常有远见的概述现阶段处理大数据的最好的深度学习库是什么?
  • Teglor的一个不错的总结 深度学习库(按编程语言分类)
  • DeepLearning.net列出了优秀的深度学习软件清单深度学习软件。
  • 在Reddit上,有一个题为深度神经网络的最佳框架是什么?的深入讨论。
  • 开源深度学习项目清单“ GitHub中最好的100个深度学习项目”。

总结

在这篇文章中,我们讨论了世界上目前较受欢迎的深度学习工具和库,包括:

  • Theano
  • Torch
  • Caffe
  • DeepLearning4J
深度学习keras深度学习keras

0 人点赞