Which deep learning package is the best?

Which deep learning package is the best? - Quora

I would recommendDeeplearning4j. Check it out:

Open-source, distributed deep learning for the JVM

Deeplearning4j is not the first open-source deep-learning project, but it is distinguished from its predecessors in both programming language and intent. DL4J is a Java-based, industry-focused, commercially supported, distributed deep-learning framework intended to solve problems involving massive amounts of data in a reasonable amount of time. It integrates with Hadoop and Spark using an arbitrary number of GPUs, and it has a number you can call if anything breaks.

------

I will give you some comparison here:

Pylearn2/Theano

Most academic researchers in deep learning rely onPylearn2andTheano, which are written in Python. Pylearn2 is a machine-learning library, while Theano is a library that handles multidimensional arrays, like Numpy. Both are powerful tools widely used for research purposes and serving a large community. They are well suited to data exploration and explicitly state that they are intended for research.

Pylearn2 is a normal (non-distributed) framework that includes everything necessary to conduct experiments with multilayer Perceptrons, RBMs, Stacked Denoising Autoencoders and Convolutional nets. We recommend it for precisely those use cases. In contrast, Deeplearning4j intends to be the equivalent of Scikit-learn in the deep-learning space. It aims to automate as many knobs as possible in a scalable fashion on parallel GPUs or CPUs, integrating as needed with Hadoop and Spark.

Torch

Torch7is a computational framework written in Lua that supports machine-learning algorithms. Some version of it is used by large tech companies such as Google and Facebook, which devote in-house teams to customizing their deep learning platforms. Lua is a multi-paradigm language developed in Brazil in the early 1990s.

Torch7, while powerful,was not designed to be widely accessibleto the Python-based academic community, nor to corporate software engineers, whose lingua franca is Java. Deeplearning4j was written in Java to reflect our focus on industry and ease of use. We believe usability is the limiting parameter that inhibits more widespread deep-learning implementations. We believe that a commercially supported open-source framework is the appropriate solution to ensure working tools and building a community.

Caffe

Caffeis a well-known and widely used machine-vision library that ported Matlab’s implementation of fast convolutional nets to C and C++. It is not intended for other deep-learning applications such as text, sound or time series data. Both Deeplearning4j and Caffe perform image classification with convolutional nets, which represent the state of the art. In contrast to Caffe, Deeplearning4j offers parallel GPUsupportfor an arbitrary number of chips, as well as many, seemingly trivial, features that make deep learning run more smoothly on multiple GPU clusters in parallel.

------

Here are some reasons why I recommend the Deeplearning4j:

Licensing

Lisensing another distinction among these open-source projects: Theano, Torch and Caffe employ a BSD License, which does not address patents or patent disputes. Deeplearning4j and ND4J are distributed under anApache 2.0 License, which contains both a patent grant and a litigation retaliation clause. That is, anyone is free to make and patent derivative works based on Apache 2.0-licensed code, but if they sue someone else over patent claims regarding the original code (DL4J in this case), they immediately lose all patent claim to it. (In other words, you are given resources to defend yourself in litigation, and discouraged from attacking others.) BSD doesn’t address the issue.

Speed

Deeplearning4j’s underlying linear algebra computations, performed with ND4J, have been shown to runat least twice as fastas Numpy on very large matrix multiplies. That’s one reasons why we’ve been adopted by teams at NASA’s Jet Propulsion Laboratory. Moreover, Deeplearning4j has been optimized to run on various chips including x86 and GPUs with CUDA C.

While both Torch7 and DL4J employ parallelism, DL4J’sparallelism is automatic. That is, we automate the setting up of worker nodes and connections, allowing users to bypass libs while creating a massively parallel network onSpark,Hadoop, or withAkka and AWS. Deeplearning4j is best suited for solving specific problems, and doing so quickly.

Deeplearning4j using Java

Many people often asked why Skymind chose to implement an open-source deep-learning project in Java, when so much of the deep-learning community is focused on Python. After all, Python has great syntactic elements that allow you to add matrices together without creating explicit classes, as Java requires you to do. Likewise, Python has an extensive scientific computing environment with native extensions like Theano and Numpy.

Yet Java has several advantages. First of all, as a language it is inherently faster than Python. Anything written in Python by itself, disregarding its reliance on Cython, will be slower. Admittedly, most computationally expensive operations are written in C or C++. (When we talk about operations, we also consider things like strings and other operations involved with higher-level machine learning processes.) Most deep-learning projects that are initially written in Python will have to be rewritten if they are to be put in production. Not so with Java.

Secondly, most major companies worldwide use Java or a Java-based system. It remains the most widely used language in the world. That is, many programmers solving real-world problems could benefit from deep learning, but they are separated from it by a language barrier. We want to make deep learning more usable to a large new audience that can put it to immediate use.

Thirdly, Java’s lack of robust scientific computing libraries can be solve by writing them, which we’ve done withND4J, which runs on distributed GPUs or GPUs, and can be interfaced via a Java or Scala API.

Finally, Java is a secure, network language that inherently works cross-platform on Linux servers, Windows and OSX desktops, Android phones and in the low-memory sensors of the Internet of Things via embedded Java. While Torch and Pylearn2 optimize via C++, which presents difficulties for those who try to optimize and maintain it, Java is a “write once, run anywhere” language suitable for companies who need to use deep learning on many platforms.

The Ecosystem

Java’s popularity is only strengthened by its ecosystem.Hadoopis implemented in Java;Sparkruns within Hadoop’s Yarn run-time; libraries likeAkkamade building distributed systems for Deeplearning4j feasible. In sum, Java boasts a highly tested infrastructure for pretty much any application, and deep-learning nets written in Java can live close to the data, which makes programmers’ lives easier. Deeplearning4j can be run and provisioned as a YARN app.

Java can also be used natively from other popular languages like Scala, Clojure, Python and Ruby. By choosing Java, we excluded the fewest major programming communities possible.

While Java is not as fast as C or C++, it is much faster than many believe, and we’ve built a distributed system that can accelerate with the addition of more nodes, whether they are GPUs or CPUs. That is, if you want speed, just throw more boxes at it.

Finally, we are building the basic applications of Numpy, including ND-Array, in Java for DL4J. We believe that many of Java’s shortcomings can be solved quickly, and many of its advantages will continue for some time.

Using Scala

Skymind team has paid special attention toScalain building Deeplearning4j and ND4J, because they believe Scala has the potential to become the dominant language in data science. Writing numerical computing, vectorization and deep-learning libraries for the JVM with aScala APImoves the community toward that goal.

------

I hope it helps

305 views•2 upvotesWritten 31 Jul

Upvote2Downvote

Comment

More Answers Below.

Related Questions

Deep Learning:If you could ask one question to Dr. Hinton about deep learning what would it be?

Deep Learning:What are the best practices, methods and algorithms to train a deep learning system?

Deep Learning:Training Restricted Boltzmann Machine for Classification , How does one arrive at best parameters that gives least error?

Deep Learning:What are some of the best publicly available dissertations concerning deep learning?

Deep Learning:What are the strengths of Theano vs Torch?

Benjamin Ellenberger,is doing a Master Thesis in Deep Learning and Motor Control.

Your question is a bit general. I heard that the standard packages such as Theano, Torch, Caffe etc. are all very good. Usually it is more the question what programming/scripting language you want to use and what your want to use it for.

79 views•Written 29 Jul

UpvoteDownvote

Comment

Dylan Koh

I have seen recommendations of a recent deep learning package known ashycis/Moziand is really easy to use compared to caffe or torch. How's it compared to other packages like caffe and torch7?

70 views•Written 27 Jul

UpvoteDownvote

Comment

Andrew Nystrom,I'm a professional practitioner and lifelong student of machine learning.

Chainer looks pretty interesting:Chainer - A flexible framework of neural networks

Written in Python, very flexible and intuitive model structure formation, can use CUDA.

5 views•Written Wed

UpvoteDownvote

Comment

Write an answer

Related Questions

Deep Learning:What is meant by a distributed representation?

Deep Learning:Why does deep learning require minimal feature crafting?

Deep Learning:How big of an improvement is expected from using a single rbm layer to a second?

Deep Learning:Why can one avoid unsupervised pre-training using rectified linear units?

Deep Learning:What is hierarchical matching pursuit?

Deep Learning:Is there a guideline or procedure for managing large-scale deep learning projects that universities and industries use?

Deep Learning:When implementing AdaGrad for multi-layer neural net backpropogation, what tends to be the average difference in the SQRT of the "historicGrad...

Deep Learning:Why is the energy function of the Restricted Boltzmann Machine defined the way it is defined?

Deep Learning:How would you explain Dark Knowledge?

Deep Learning:How does one reverse the max-pooling layer for reconstruction in the decoding part of an auto-encoder?

Deep Learning:What is meant by bias in energy equation? Why do we want to add that term?

Deep Learning:What are the difference and relevance between DNN and DBN?

Deep Learning:Why not use unsupervised training for the more traditional (shallow) neural networks?

Deep Learning:I have solved UFLDL "Exercise: Sparse Autoencoders", but have trouble adding G. Hinton's Dropout technique + the maxout activation function. H...

Deep Learning:Which redditors should I follow if im interested in deep learning?

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,179评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,229评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,032评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,533评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,531评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,539评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,916评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,813评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,568评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,654评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,354评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,937评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,918评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,152评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,852评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,378评论 2 342

推荐阅读更多精彩内容

  • 周末两天,偷个小懒给自己放个假,暂停时间记录,果然,周日忘记了让同事捎东西的重要事项。 周六爷爷携大孙子驾到,开心...
    Min_Xu阅读 138评论 0 1
  • 第一次用,试试看
    左岸流浪儿阅读 167评论 0 0
  • CardMatchingGame .h@import Foundation#import "Deck.h"@int...
    _Patrik_阅读 264评论 0 0
  • 文|一棵 1. 杭州的四月,春风醉人,退去冬日的湿寒,迎面走来的人都 洋溢着可人的面容。 昨夜何雪带着沙哑的声音抱...
    一颗牙么阅读 1,463评论 0 3