深度學習領域發展迅猛,江湖風起雲涌。在此,咪博士爲你們細細盤點、比較,各大深度學習框架。也祝你們都能訓出好模型,調出好參數。html
如下是咪博士的觀點,供你們參考:前端
下面是詳細的比較和說明:git
1、推薦使用github
Kerasweb
受到 Torch 啓發,Keras 提供了簡單易用的 API 接口,特別適合初學者入門。其後端採用 TensorFlow, CNTK,以及 Theano。另外,Deeplearning4j 的 Python 也是基於 Keras 實現的。Keras 幾乎已經成了 Python 神經網絡的接口標準。apache
Gluon編程
亞馬遜 (Amazon) 和 微軟 (Microsoft) 於 2017 年 10 月聯合推出的深度學習 API。Gluon 相似 Keras,提供了簡單易用的 API 接口。但和 Keras 不同的地方是,Gluon 還支持動態計算圖(對天然語言處理特別有用)。Gluon 後端目前採用 MXNet,將來還將支持微軟的 CNTK。後端
TensorFlowapi
谷歌 (Google) 大廠出品,追隨者衆多。相比其餘框架,TensorFlow 速度較慢,但它提供的 TensorBoard 可視化工具仍是很不錯的。瀏覽器
已被 亞馬遜 (Amazon) 選爲 AWS 上的深度學習框架,支持動態圖計算。MXNet 有許多中國開發者,於是有很是良好的中文文檔支持。Gluon 接口使得 MXNet 像 Keras 同樣簡單易用。
2、值得一試
背後金主是 臉書 (Facebook) ,一樣支持動態計算圖,提供很好的靈活性,適合研究。
一樣是 臉書 (Facebook) 出品,爲生產環境設計,提供在各類平臺(包括移動設備)的運行時。
與其餘(大多數)基於 Python 的深度學習框架不一樣,Deeplearning4j 基於 Java 開發,與 Hadoop, Spark 生態結合得很好。尤爲使人稱道的是其優秀的文檔,官司方文檔直接就有中文版本。另外,雖然是面向 Java 的框架,Deeplearning4j 也提供了 Python 的接口(基於 Keras 實現)
基於 Javascript 的深度學習框架,能夠在瀏覽器中訓練深度神經網絡。最重要的用途是幫助學習 Deep Learning
3、不推薦
Theano, Lasagne, 以及 Blocks
Yoshua Bengio 於 2017 年 09 月宣佈再也不維護 Theano,因此這個項目事實上已經宣告死亡了。其餘基於 Theano 的庫,如 Lasagne 和 Blocks,也能夠散了。
Torch
雖然設計精良(Keras 就是參考 Torch 設計的),但它基於 Lua 語言,太太小衆了。並且 Facebook 已經推出了 Python 版本的 PyTorch 了。
Caffe
Caffe2 已經正式發佈了,完全取代 Caffe 只是時間問題罷了。
CNTK
微軟出品,受權協議有一些特別,並且彷佛也沒有什麼特別亮眼的地方。
Chainer
曾經是動態計算圖的首選框架,特別適用於天然語言處理。可是,如今許多其餘的框架,如 MXNet, PyTorch, 以及 DyNet 也支持該特性,因此 Chainer 的這一優點也就不復存在了。
Paddle
百度的深度學習框架,受衆過小。
DSSTNE
曾是亞馬遜的深度學習引擎,可是很小衆,並且如今亞馬遜又選擇了 MXNet,因此 DSSTNE 的前途就更渺茫了。
DyNet
源自卡耐基梅隆大學,支持動態計算圖,可是過小衆了。
BigDL
Intel 基於 spark 的深度學習庫,但只能運行在 Intel 芯片之上。
Neon
聽說速度很快,但太太小衆,並且發展還不完善,許多特性還不支持。
參考
出處:http://www.cnblogs.com/ipaomi/p/7798656.html
================================================================================
對於但願在應用中整合深度學習功能的開發者來講,GitHub上其實還有不少不錯的開源項目值得關注
1、Caffe。https://github.com/BVLC/caffe源自加州伯克利分校的Caffe被普遍應用,包括Pinterest這樣的web大戶。與TensorFlow同樣,Caffe也是由C++開發,Caffe也是Google今年早些時候發佈的DeepDream項目(能夠識別喵星人的人工智能神經網絡)的基礎。
2、Theano https://github.com/Theano/Theano 2008年誕生於蒙特利爾理工學院,Theano派生出了大量深度學習Python軟件包,最著名的包括Blocks 和 Keras 。
3、Torch https://github.com/torch/torch7 Torch誕生已經有十年之久,可是真正起勢得益於去年Facebook開源了大量Torch的深度學習模塊和擴展。Torch另一個特殊之處是採用了不怎麼流行的編程語言Lua(該語言曾被用來開發視頻遊戲)。
除了以上三個比較成熟知名的項目,還有不少有特點的深度學習開源框架也值得關注:
4、Brainstorm https://github.com/IDSIA/brainstorm。來自瑞士人工智能實驗室IDSIA的一個很是發展前景很不錯的深度學習軟件包,Brainstorm可以處理上百層的超級深度神經網絡——所謂的公路網絡Highway Networks http://people.idsia.ch/%7Erupesh/very_deep_learning/index.html。
5、Chainer https://github.com/pfnet/chainer。來自一個日本的深度學習創業公司Preferred Networks,今年6月發佈的一個Python框架。Chainer的設計基於define by run原則,也就是說,該網絡在運行中動態定義,而不是在啓動時定義,這裏有Chainer的詳細文檔http://docs.chainer.org/en/stable/tutorial/basic.html。
6、Deeplearning4j https://github.com/deeplearning4j/deeplearning4j。 顧名思義,Deeplearning4j是」for Java」的深度學習框架,也是首個商用級別的深度學習開源庫。Deeplearning4j由創業公司Skymind於2014年6月發佈,使用 Deeplearning4j的不乏埃森哲、雪弗蘭、博斯諮詢和IBM等明星企業。http://deeplearning4j.org/
DeepLearning4j是一個面向生產環境和商業應用的高成熟度深度學習開源庫,可與Hadoop和Spark集成,即插即用,方便開發者在APP中快速集成深度學習功能,可應用於如下深度學習領域:
人臉/圖像識別
語音搜索
語音轉文字(Speech to text)
垃圾信息過濾(異常偵測)
電商欺詐偵測
7、Marvin https://github.com/PrincetonVision/marvin。是普林斯頓大學視覺工做組http://vision.princeton.edu/新推出的C++框架。該團隊還提供了一個文件https://github.com/PrincetonVision/marvin/tree/master/tools/converter_caffe用於將Caffe模型轉化成語Marvin兼容的模式。
8、ConvNetJS https://github.com/karpathy/convnetjs。這是斯坦福大學博士生Andrej Karpathy開發瀏覽器插件,基於萬能的JavaScript能夠在你的遊覽器中訓練神經網絡。Karpathy還寫了一個ConvNetJS的入門教程,以及一個簡潔的瀏覽器演示項目http://cs.stanford.edu/people/karpathy/convnetjs/index.html。
9、MXNet https://github.com/dmlc/mxnet。出自CXXNet、Minerva、Purine等項目的開發者之手,主要用C++編寫。MXNet強調提升內存使用的效率,甚至能在智能手機上運行諸如圖像識別等任務。
10、Neon https://github.com/NervanaSystems/neon。由創業公司Nervana Systems於今年五月開源,在某些基準測試中,由Python和Sass開發的Neon的測試成績甚至要優於Caffeine、Torch和谷歌的TensorFlow。
出處:http://www.cnblogs.com/hulubrother/articles/5950413.html