选自deeplearning4j.org
机器之心编译
作者:A?ronvandenOord、HeigaZen、SanderDieleman
参与:吴攀、李亚洲
近日,Deeplearning4j在自己的官方网站发表了一篇对比Deeplearning4j与Torch、Theano、Caffe、TensorFlow的博客文章,同时Deeplearning4j在文章中也对自己的框架进行了较为详细的介绍(多有溢美之词)。机器之心对全文进行了编译,文中观点仅代表原作者立场。
目录
TheanoEcosystem
Torch
Tensorflow
Caffe
CNTK
DSSTNE
Speed
DL4J:WhytheJVM?
DL4S:DeepLearninginScala
Machine-LearningFrameworks
FurtherReading
Theano与生态系统
深度学习领域内的很多学术研究人员依赖于Theano,这个用Python编写的框架可谓是深度学习框架的老祖宗。Theano像Numpy一样,是一个处理多维数组的库。与其他库一起使用,Theano很适合于数据探索和进行研究。
在Theano之上,已经有很多的开源的深度库建立起来,包括Keras、Lasagne和Blocks。这些库的建立是为了在Theano偶尔的非直觉界面上更简单地使用API。(截止到年3月,另一个与Theano相关的库Pylearn2可能即将死亡。)
相反,Deeplearning4j能在JVM语言(比如,Java和Scala)下将深度学习带入生产环境中,创造出解决方案。Deeplearning4j意在以一种可拓展的方式在并行GPU或CPU上将尽可能多的环节自动化,并能在需要的时候与Hadoop和Spark进行整合。
优缺点
(+)Python+Numpy
(+)计算图是很好的抽象
(+)RNN完美适配计算图
(-)原始Theano在某种程度上有些低水平
(+)高层次wrappers(Keras,Lasange)减轻了这种痛苦
(-)错误信息没有帮助
(-)大型模型有较长的编译时间
(-)比Torch更「臃肿」
(-)对预训练模型支持不佳
(-)在AWS上有很多bug
Torch
Torch是一个用Lua编写的支持机器学习算法的计算框架。其中的一些版本被Facebook、Twitter这样的大型科技公司使用,为内部团队专门化其深度学习平台。Lua是一种在上世纪90年代早期在巴西开发出来的多范式的脚本语言。
Torch7虽然强大,却并未被基于Python的学术社区和通用语言为Java的企业软件工程师普遍使用。Deeplearning4j使用Java编写,这反映了我们对产业和易用性的治疗白癜风最新最佳最好的方法治疗白癜风最有效的医院