DL4J與Torch霎俩、Theano哀军、TensorFlow、Caffe打却、Paddle杉适、MxNet、Keras 和 CNTK的比較

DL4J與Torch柳击、Theano猿推、TensorFlow、Caffe捌肴、Paddle彤守、MxNet、Keras 和 CNTK的比較

與其他深度學(xué)習(xí)框架相比哭靖,Deeplearning4j在API語言、宗旨和集成性方面獨具特色侈离。DL4J是基于JVM试幽、聚焦行業(yè)應(yīng)用且提供商業(yè)支持的分布式深度學(xué)習(xí)框架,能在合理的時間內(nèi)解決各類涉及大量數(shù)據(jù)的問題。DL4J與Kafka铺坞、Hadoop和Spark集成起宽,可使用任意數(shù)量的GPUCPU運(yùn)行,而且發(fā)生任何問題都可以聯(lián)系服務(wù)熱線济榨。

DL4J是一種跨平臺的便攜式學(xué)習(xí)庫坯沪,并非專門針對AWS、Azure或谷歌云等任何一種特定的云端服務(wù)而優(yōu)化擒滑。論速度腐晾,DL4J用多GPU運(yùn)行非平凡圖像處理任務(wù)時的性能可媲美Caffe,優(yōu)于TensorFlow和Torch丐一。如需對Deeplearning4j運(yùn)行基準(zhǔn)測試藻糖,請參閱此頁的指南,通過調(diào)整JVM的堆空間库车、垃圾回收算法巨柒、內(nèi)存管理以及DL4J的ETL數(shù)據(jù)加工管道來優(yōu)化DL4J的性能。Deeplearning4j擁有Java柠衍、ScalaPython API(所用的Python API為Keras)洋满。

目錄

Lua

  1. Torch 和 Pytorch

Python 框架

  1. Theano及其生態(tài)系統(tǒng)
  2. TensorFlow
  3. Caffe
  4. Caffe2
  5. CNTK
  6. Chainer
  7. DSSTNE
  8. DyNet
  9. Keras
  10. Paddle
  11. BigDL
  12. 許可

JVM相關(guān)因素

  1. 速度
  2. DL4J:為什么用JVM?
  3. DL4J:生態(tài)系統(tǒng)
  4. DL4S:基于Scala語言的深度學(xué)習(xí)
  5. 機(jī)器學(xué)習(xí)框架
  6. 擴(kuò)展閱讀

Lua

Torch 和 Pytorch

Torch 是用Lua編寫的帶API的計算框架珍坊,支持機(jī)器學(xué)習(xí)算法牺勾。Facebook和Twitter等大型科技公司使用Torch的某些版本,由內(nèi)部團(tuán)隊專門負(fù)責(zé)定制自己的深度學(xué)習(xí)平臺垫蛆。Lua是上世紀(jì)九十年代早期在巴西開發(fā)的多范式腳本語言禽最。

Torch7雖然功能強(qiáng)大,但其設(shè)計并不適合在兩個群體中大范圍普及袱饭,即主要依賴Python的學(xué)術(shù)界川无,以及普遍使用Java的企業(yè)軟件工程師。Deeplearning4j用Java編寫虑乖,反映了我們對行業(yè)應(yīng)用和使用便利的重視懦趋。我們認(rèn)為可用性是阻礙深度學(xué)習(xí)實施工具廣泛普及的限制因素。我們認(rèn)為可擴(kuò)展性應(yīng)當(dāng)通過 Hadoop 和 Spark 這樣的開源分布式運(yùn)行時系統(tǒng)來實現(xiàn)自動化疹味。我們還認(rèn)為仅叫,從確保工具正常運(yùn)作和構(gòu)建社區(qū)兩方面來看,提供商業(yè)支持的開源框架是最恰當(dāng)?shù)慕鉀Q方案糙捺。

Facebook于2017年1月開放了Torch的Python API ― PyTorch的源代碼诫咱。PyTorch 支持動態(tài)計算圖,讓您能處理長度可變的輸入和輸出洪灯,而這在RNN應(yīng)用和其他一些情形中很有幫助坎缭。CMU 的 DyNet 和 PFN 的 Chainer 框架也支持動態(tài)計算圖。

利與弊:

  • 大量模塊化組件,容易組合
  • 很容易編寫自己的層類型并在GPU上運(yùn)行
  • Lua - 大多數(shù)學(xué)習(xí)庫的代碼是Lua掏呼,比較易讀
  • 有很多已預(yù)訓(xùn)練的模型坏快!
  • PyTorch
  • Lua
  • 通常需要自己編寫訓(xùn)練代碼(即插即用相對較少)
  • 不提供商業(yè)支持
  • 文檔質(zhì)量參差不齊

Python框架

Theano及其生態(tài)系統(tǒng)

深度學(xué)習(xí)領(lǐng)域的許多學(xué)術(shù)研究者依賴 Theano,Theano是深度學(xué)習(xí)框架中的元老憎夷,用 Python 編寫莽鸿。Theano和NumPy一樣,是處理多維數(shù)組的學(xué)習(xí)庫拾给。Theano可與其他學(xué)習(xí)庫配合使用祥得,非常適合數(shù)據(jù)探索和研究活動。

現(xiàn)在已有大量基于Theano的開源深度學(xué)習(xí)庫鸣戴,包括 Keras啃沪、 LasagneBlocks。這些學(xué)習(xí)庫試著在Theano有時不夠直觀的接口之上添加一層便于使用的API窄锅。(截至2016年3月创千,另一個與Theano相關(guān)的學(xué)習(xí)庫 Pylearn2似乎已經(jīng)停止開發(fā)。)

相比之下入偷,Deeplearning4j致力于將深度學(xué)習(xí)引入生產(chǎn)環(huán)境追驴,以Java和Scala等JVM語言開發(fā)解決方案。力求以可擴(kuò)展疏之、多個GPU或CPU并行的方式讓盡可能多的控制點實現(xiàn)自動化殿雪,在需要時與Hadoop和 Spark 集成。

利與弊:

  • Python + NumPy
  • 計算圖是良好的抽象化方式
  • 原始的Theano級別偏低
  • RNN與計算圖匹配良好
  • 高級的包裝(Keras锋爪、Lasagne)減少了使用時的麻煩
  • 原始的Theano級別偏低
  • 錯誤信息可能沒有幫助
  • 大型模型的編譯時間可能較長
  • 比Torch笨重許多
  • 對已預(yù)訓(xùn)練模型的支持不夠完善
  • 在AWS上容易出現(xiàn)bug
  • 只支持單個GPU

TensorFlow

  • 谷歌開發(fā)了TensorFlow來取代Theano丙曙,這兩個學(xué)習(xí)庫其實很相似。有一些Theano的開發(fā)者在谷歌繼續(xù)參與了TensorFlow的開發(fā)其骄,其中包括后來加入了OpenAI 的 Ian Goodfellow亏镰。
  • 目前TensorFlow還不支持所謂的“內(nèi)聯(lián)(inline)”矩陣運(yùn)算,必須要復(fù)制矩陣才能對其進(jìn)行運(yùn)算拯爽。復(fù)制非常大的矩陣會導(dǎo)致成本全面偏高索抓。TF運(yùn)行所需的時間是最新深度學(xué)習(xí)工具的四倍。谷歌表示正在解決這一問題毯炮。
  • 和大多數(shù)深度學(xué)習(xí)框架一樣逼肯,TensorFlow是用一個Python API編寫的,通過C/C++引擎加速桃煎。雖然它對Java API有實驗性支持篮幢,但目前它是是非常不穩(wěn)定的,這種解決方案并不適合Java和Scala用戶群为迈。
  • TensorFlow運(yùn)行明顯比其他框架慢(例如:CNTK 和 MxNet)
  • TensorFlow的用途不止于深度學(xué)習(xí)洲拇。TensorFlow其實還有支持強(qiáng)化學(xué)習(xí)和其他算法的工具奈揍。
  • 谷歌似乎已承認(rèn)TensorFlow的目標(biāo)包括招募人才,讓其研究者的代碼可以共享赋续,推動軟件工程師以標(biāo)準(zhǔn)化方式應(yīng)用深度學(xué)習(xí),同時為谷歌云端服務(wù)帶來更多業(yè)務(wù)――TensorFlow正是為該服務(wù)而優(yōu)化的另患。
  • TensorFlow不提供商業(yè)支持纽乱,而谷歌也不太可能會從事支持開源企業(yè)軟件的業(yè)務(wù)。谷歌的角色是為研究者提供一種新工具昆箕。
  • 和Theano一樣鸦列,TensforFlow會生成計算圖(如一系列矩陣運(yùn)算,例如z = sigmoid(x)鹏倘,其中x和z均為矩陣)薯嗤,自動求導(dǎo)。自動求導(dǎo)很重要纤泵,否則每嘗試一種新的神經(jīng)網(wǎng)絡(luò)設(shè)計就要手動編寫新的反向傳播算法骆姐,沒人愿意這樣做。在谷歌的生態(tài)系統(tǒng)中捏题,這些計算圖會被谷歌大腦用于高強(qiáng)度計算玻褪,但谷歌還沒有開放相關(guān)工具的源代碼。TensorFlow可以算是谷歌內(nèi)部深度學(xué)習(xí)解決方案的一半公荧。
  • 從企業(yè)的角度看带射,許多公司需要思考的問題在于是否要依靠谷歌來提供這些工具。
  • 注意:有部分運(yùn)算在TensorFlow中的運(yùn)作方式與在NumPy中不同循狰。

利與弊:

  • Python + NumPy
  • 與Theano類似的計算圖抽象化
  • 編譯時間快于Theano
  • 用TensorBoard進(jìn)行可視化
  • 同時支持?jǐn)?shù)據(jù)并行和模型并行
  • 速度比其他框架慢
  • 比Torch笨重許多窟社;更難理解
  • 不提供商業(yè)支持
  • 已預(yù)訓(xùn)練的模型不多
  • 加載每個新的訓(xùn)練批次時都要跳至Python
  • 不太易于工具化
  • 動態(tài)類型在大型軟件項目中容易出錯

Caffe

Caffe 是一個廣為人知、廣泛應(yīng)用的機(jī)器視覺庫绪钥,將Matlab實現(xiàn)的快速卷積網(wǎng)絡(luò)移植到了C和C++平臺上(參見Steve Yegge關(guān)于一個芯片一個芯片地移植C++代碼的博客灿里,可以幫助你思考如何在速度和這種特定的技術(shù)債務(wù)之間進(jìn)行權(quán)衡)。Caffe不適用于文本昧识、聲音或時間序列數(shù)據(jù)等其他類型的深度學(xué)習(xí)應(yīng)用钠四。與本文提到的其他一些框架相同,Caffe選擇了Python作為其API跪楞。

Deeplearning4j和Caffe都可以用卷積網(wǎng)絡(luò)進(jìn)行圖像分類缀去,這是最先進(jìn)的技術(shù)。與Caffe不同甸祭,Deeplearning4j支持任意芯片數(shù)的GPU并行運(yùn)行缕碎,并且提供許多看似微不足道,卻能使深度學(xué)習(xí)在多個并行GPU集群上運(yùn)行得更流暢的功能池户。雖然在論文中被廣泛引述咏雌,但Caffe主要用于為其Model Zoo網(wǎng)站提供已預(yù)訓(xùn)練的模型凡怎。

利與弊:

  • 適合前饋網(wǎng)絡(luò)和圖像處理
  • 適合微調(diào)已有的網(wǎng)絡(luò)
  • 無需編寫任何代碼即可訓(xùn)練模型
  • Python接口相當(dāng)有用
  • 需要用C++ / CUDA編寫新的GPU層
  • 不適合循環(huán)網(wǎng)絡(luò)
  • 用于大型網(wǎng)絡(luò)(GoogLeNet、ResNet)時過于繁瑣
  • 不可擴(kuò)展赊抖,有些不夠精簡
  • 不提供商業(yè)支持
  • 更新緩慢统倒,可能以后不再更新

Caffe2

令業(yè)界翹首以盼的Caffe2將接替原版Caffe。Caffe的開發(fā)人目前在Facebook就職氛雪。Caffe2是繼Torch/PyTorch之后第二個得到Facebook支持的深度學(xué)習(xí)框架房匆。從目前的宣傳來看,Caffe2的主要區(qū)別似乎是更加輕便且可擴(kuò)展性更強(qiáng)报亩。與Caffe和PyTorch一樣浴鸿,Caffe2提供一個在C++引擎上運(yùn)行的Python API。

利與弊:

  • BSD許可協(xié)議
  • 不提供商業(yè)支持

CNTK

CNTK是微軟的開源深度學(xué)習(xí)框架弦追。CNTK的全稱是“計算網(wǎng)絡(luò)工具包岳链。”此學(xué)習(xí)庫包括前饋DNN劲件、卷積網(wǎng)絡(luò)和循環(huán)網(wǎng)絡(luò)掸哑。CNTK提供基于C++代碼的Python API。雖然CNTK遵循一個比較寬松的許可協(xié)議寇仓,卻并未采用ASF 2.0举户、BSD或MIT等一些較為傳統(tǒng)的許可協(xié)議。這一許可協(xié)議不適用于CNTK旨在簡化分布式訓(xùn)練的1-Bit隨機(jī)梯度下降(SGD)方法遍烦,該組件不得用作商業(yè)用途俭嘁。

Chainer

Chainer是一個帶有Python API的開源神經(jīng)網(wǎng)絡(luò)框架,其核心開發(fā)團(tuán)隊隸屬于東京一家名叫Preferred Networks的機(jī)器學(xué)習(xí)創(chuàng)業(yè)公司服猪,團(tuán)隊工程師主要來自東京大學(xué)供填。在CMU的DyNet和Facebook的PyTorch問世以前,Chainer是最領(lǐng)先的動態(tài)計算圖神經(jīng)網(wǎng)絡(luò)框架罢猪。動態(tài)計算圖能處理可變長度的輸入近她,很適合進(jìn)行自然語言分析任務(wù)。Chainer自己的基準(zhǔn)測試發(fā)現(xiàn)膳帕,該框架的速度明顯快于包括MxNet和CNTK在內(nèi)的其他面向Python的學(xué)習(xí)框架粘捎,而TensorFlow的速度最慢。

DSSTNE

亞馬遜的深度可伸縮稀疏張量網(wǎng)絡(luò)引擎又稱DSSTNE危彩,是用于機(jī)器學(xué)習(xí)和深度學(xué)習(xí)建模的學(xué)習(xí)庫攒磨。它是在TensorFlow和CNTK之后較晚發(fā)布的不少開源深度學(xué)習(xí)庫之一,后來亞馬遜開始以AWS力挺MxNet汤徽,所以DSSTNE的發(fā)展前景不太明朗娩缰。DSSTNE主要用C++寫成,速度較快谒府,不過吸引到的用戶群體規(guī)模尚不及其他學(xué)習(xí)庫。

利與弊:

  • 可實現(xiàn)稀疏編碼

DyNet

DyNet亦稱動態(tài)神經(jīng)網(wǎng)絡(luò)工具包孤里,由卡納基梅隆大學(xué)推出,過去曾被稱為cnn庇谆。它最值得一提的功能就是動態(tài)計算圖,能夠處理可變長度的輸入,很適合自然語言分析。PyTorch和Chainer也提供同樣的功能惦蚊。

  • 動態(tài)計算圖
  • 用戶群較小

Keras

Keras 是一個基于Theano和TensorFlow的深度學(xué)習(xí)庫,具有一個受Torch啟發(fā)讯嫂、較為直觀的API。這可能是目前最好的Python API兆沙。Deeplearning4j可以導(dǎo)入Keras模型欧芽。Keras是由谷歌軟件工程師Francois Chollet開發(fā)的。

  • 受Torch啟發(fā)的直觀API
  • 可使用Theano葛圃、TensorFlow和Deeplearning4j后端(即將推出CNTK后端)
  • 該框架正快速成長
  • 有可能成為用于開發(fā)神經(jīng)網(wǎng)絡(luò)的標(biāo)準(zhǔn)Python API

MxNet

MxNet是一個提供多種API的機(jī)器學(xué)習(xí)框架千扔,主要面向R、Python和Julia等語言库正,目前已被亞馬遜云服務(wù)采用曲楚。據(jù)傳Apple在2016收購Graphlab/Dato/Turi后,有些部門也開始使用MxNet褥符。MxNet是一個快速靈活的學(xué)習(xí)庫龙誊,由華盛頓大學(xué)的Pedro Domingos及其研究團(tuán)隊運(yùn)作。MxNet與Deeplearning4j某些方面的比較參見此處喷楣。

Paddle

Paddle是由百度開發(fā)支持的深度學(xué)習(xí)框架趟大,全名為PArallel Distributed Deep LEarning,即 “并行分布式深度學(xué)習(xí)”铣焊。Paddle是最新發(fā)布的大型深度學(xué)習(xí)框架逊朽;與多數(shù)框架一樣,它提供一個Python API曲伊。

BigDL

BigDL 是一個新的深度學(xué)習(xí)框架叽讳,重點面向Apache Spark且只能在英特爾處理器上運(yùn)行。

許可

上述開源項目的另一區(qū)別在于其許可協(xié)議:Theano坟募、Torch和Caffe采用BSD許可協(xié)議岛蚤,未能解決專利和專利爭端問題。Deeplearning4j和ND4J采用Apache 2.0許可協(xié)議發(fā)布婿屹。該協(xié)議包含專利授權(quán)和防止報復(fù)性訴訟的條款灭美,也就是說,任何人都可以自由使用遵循Apache 2.0協(xié)議的代碼創(chuàng)作衍生作品并為其申請專利昂利,但如果對他人提起針對原始代碼(此處即DL4J)的專利權(quán)訴訟届腐,就會立即喪失對代碼的一切專利權(quán)铁坎。(換言之,這幫助你在訴訟中進(jìn)行自我防衛(wèi)犁苏,同時阻止你攻擊他人硬萍。)BSD一般不能解決這個問題。

JVM相關(guān)因素

速度

Deeplearning4j依靠ND4J進(jìn)行基礎(chǔ)的線性代數(shù)運(yùn)算围详,事實表明其處理大矩陣乘法的速度至少是NumPy的兩倍朴乖。這正是DL4J被NASA的噴氣推進(jìn)實驗室所采用的原因之一。此外助赞,Deeplearning4j為多芯片運(yùn)行而優(yōu)化买羞,支持采用CUDA C的x86和GPU。

雖然Torch7和DL4J都采用并行運(yùn)行雹食,DL4J的并行運(yùn)行是自動化的畜普。我們實現(xiàn)了從節(jié)點(worker nodes)和連接的自動化設(shè)置,讓用戶在Spark群叶、HadoopAkka和AWS環(huán)境中建立大型并行網(wǎng)絡(luò)時可以繞過學(xué)習(xí)庫吃挑。Deeplearning4j最適合快速解決具體問題。

Deeplearning4j的所有功能參見功能介紹街立。

為什么選擇JVM舶衬?

經(jīng)常有人問,既然有如此之多的深度學(xué)習(xí)用戶都專注于Python赎离,為什么我們要開發(fā)一個面向JVM的開源深度學(xué)習(xí)項目逛犹。的確,Python有著優(yōu)越的語法要素蟹瘾,可以直接將矩陣相加圾浅,而無需像Java那樣先創(chuàng)建顯式類。Python還有由Theano憾朴、NumPy等原生擴(kuò)展組成的廣泛的科學(xué)計算環(huán)境狸捕。

但JVM及其主要語言Java和Scala仍然具備幾項優(yōu)勢。

首先众雷,多數(shù)大型企業(yè)和政府機(jī)構(gòu)高度依賴Java或基于JVM的系統(tǒng)灸拍。他們已經(jīng)進(jìn)行了巨大的投資,而基于JVM的人工智能可以幫助他們充分實現(xiàn)這些投資的價值砾省。在企業(yè)界鸡岗,Java依然是應(yīng)用范圍最廣的語言。Java是Hadoop编兄、ElasticSearch轩性、Hive、Lucene和Pig的語言狠鸳,而它們恰好都是解決機(jī)器學(xué)習(xí)問題的有用工具揣苏。Spark和Kafka則是用另一種JVM語言Scala編寫的悯嗓。也就是說,深度學(xué)習(xí)本可以幫助許多需要解決現(xiàn)實問題的程序員卸察,但他們卻被語言屏障阻礙脯厨。我們希望提高深度學(xué)習(xí)對于這一廣大群體的可用性,這些新的用戶可以將深度學(xué)習(xí)直接付諸實用坑质。Java是世界上用戶規(guī)模最大的編程語言合武,共有1000萬名開發(fā)者使用Java。

其次涡扼,與Python相比稼跳,Java和Scala在速度上具有先天優(yōu)勢。如不考慮依賴用Cython加速的情況吃沪,任何用Python寫成的代碼在根本上速度都相對較慢岂贩。不可否認(rèn),運(yùn)算量最大的運(yùn)算都是用C或C++語言編寫的巷波。(此處所說的運(yùn)算也包括高級機(jī)器學(xué)習(xí)流程中涉及的字符和其他任務(wù)。)大多數(shù)最初用Python編寫的深度學(xué)習(xí)項目在用于生產(chǎn)時都必須重新編寫卸伞。Deeplearning4j依靠JavaCPP從Java中調(diào)用預(yù)編譯的本機(jī)C++代碼抹镊,大幅提升訓(xùn)練速度。許多Python程序員選擇用Scala實現(xiàn)深度學(xué)習(xí)荤傲,因為他們在進(jìn)行共享基本代碼的合作時更青睞靜態(tài)類型和函數(shù)式編程垮耳。

第三,為了解決Java缺少強(qiáng)大的科學(xué)計算庫的問題遂黍,我們編寫了ND4J终佛。ND4J在分布式CPU或GPU上運(yùn)行,可以通過Java或Scala的API進(jìn)行對接雾家。

最后铃彰,Java是一種安全的網(wǎng)絡(luò)語言,本質(zhì)上具有跨平臺的特點芯咧,可在Linux服務(wù)器牙捉、Windows和OSX桌面、安卓手機(jī)上運(yùn)行敬飒,還可通過嵌入式Java在物聯(lián)網(wǎng)的低內(nèi)存?zhèn)鞲衅魃线\(yùn)行邪铲。Torch和Pylearn2通過C++進(jìn)行優(yōu)化,優(yōu)化和維護(hù)因而存在困難无拗,而Java則是“一次編寫带到,隨處運(yùn)行”的語言,適合需要在多個平臺上使用深度學(xué)習(xí)系統(tǒng)的企業(yè)英染。

生態(tài)系統(tǒng)

生態(tài)系統(tǒng)也是為Java增添人氣的優(yōu)勢之一揽惹。Hadoop是用 Java 實施的被饿;Spark在 Hadoop 的 Yarn 運(yùn)行時中運(yùn)行;Akka等開發(fā)庫讓我們能夠為 Deeplearning4j 開發(fā)分布式系統(tǒng)永丝∏率總之,對幾乎所有應(yīng)用而言慕嚷,Java的基礎(chǔ)架構(gòu)都經(jīng)過反復(fù)測試哥牍,用Java編寫的深度學(xué)習(xí)網(wǎng)絡(luò)可以靠近數(shù)據(jù),方便廣大程序員的工作喝检。Deeplearning4j 可以作為YARN的應(yīng)用來運(yùn)行和預(yù)配嗅辣。

Scala、Clojure挠说、Python 和 Ruby等其他通行的語言也可以原生支持 Java澡谭。我們選擇Java,也是為了盡可能多地覆蓋主要的程序員群體损俭。

雖然Java的速度不及 C 和 C++蛙奖,但它仍比許多人想象得要快,而我們建立的分布式系統(tǒng)可以通過增加節(jié)點來提升速度杆兵,節(jié)點可以是 GPU 或者 CPU雁仲。也就是說,如果要速度快琐脏,多加幾盒處理器就好了攒砖。

最后,我們也在用 Java 為 DL4J 打造 NumPy 的基本應(yīng)用日裙,其中包括 ND-Array吹艇。我們相信 Java 的許多缺點都能很快克服,而其優(yōu)勢則大多會長期保持昂拂。

Scala

我們在打造 Deeplearning4j 和 ND4J 的過程中特別關(guān)注Scala受神,因為我們認(rèn)為Scala具有成為數(shù)據(jù)科學(xué)主導(dǎo)語言的潛力。用Scala API為JVM編寫數(shù)值運(yùn)算政钟、向量化和深度學(xué)習(xí)庫可以幫助整個群體向?qū)崿F(xiàn)這一目標(biāo)邁進(jìn)路克。

關(guān)于DL4J與其他框架的不同之處,也許只需要嘗試一下就能有深入的體會养交。

機(jī)器學(xué)習(xí)框架

上文提到的深度學(xué)習(xí)框架都是比較專業(yè)化的框架精算,此外還有許多通用型的機(jī)器學(xué)習(xí)框架。這里列舉主要的幾種:

  • sci-kit learn-Python的默認(rèn)開源機(jī)器學(xué)習(xí)框架碎连。
  • Apache Mahout-Apache的主打機(jī)器學(xué)習(xí)框架灰羽。Mahout可實現(xiàn)分類、聚類和推薦。
  • SystemML-IBM的機(jī)器學(xué)習(xí)框架廉嚼,可進(jìn)行描述性統(tǒng)計玫镐、分類、聚類怠噪、回歸恐似、矩陣參數(shù)化和生存分析,還包括支持向量機(jī)傍念。
  • 微軟DMTK-微軟的分布式機(jī)器學(xué)習(xí)工具包矫夷。分布式詞嵌入和LDA。

Deeplearning4j教程

轉(zhuǎn)自:
https://deeplearning4j.org/cn/compare-dl4j-torch7-pylearn#torch

寫得不錯:
http://www.liuchungui.com/2017/09/11/Numpy%E4%B8%8EPandas%E4%BD%BF%E7%94%A8/

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市阳仔,隨后出現(xiàn)的幾起案子忧陪,更是在濱河造成了極大的恐慌,老刑警劉巖近范,帶你破解...
    沈念sama閱讀 221,695評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件嘶摊,死亡現(xiàn)場離奇詭異,居然都是意外死亡评矩,警方通過查閱死者的電腦和手機(jī)更卒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來稚照,“玉大人,你說我怎么就攤上這事俯萌」迹” “怎么了?”我有些...
    開封第一講書人閱讀 168,130評論 0 360
  • 文/不壞的土叔 我叫張陵咐熙,是天一觀的道長弱恒。 經(jīng)常有香客問我,道長棋恼,這世上最難降的妖魔是什么返弹? 我笑而不...
    開封第一講書人閱讀 59,648評論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮爪飘,結(jié)果婚禮上义起,老公的妹妹穿的比我還像新娘。我一直安慰自己师崎,他們只是感情好默终,可當(dāng)我...
    茶點故事閱讀 68,655評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般齐蔽。 火紅的嫁衣襯著肌膚如雪两疚。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,268評論 1 309
  • 那天含滴,我揣著相機(jī)與錄音诱渤,去河邊找鬼。 笑死谈况,一個胖子當(dāng)著我的面吹牛勺美,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播鸦做,決...
    沈念sama閱讀 40,835評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼励烦,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了泼诱?” 一聲冷哼從身側(cè)響起坛掠,我...
    開封第一講書人閱讀 39,740評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎治筒,沒想到半個月后屉栓,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,286評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡耸袜,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,375評論 3 340
  • 正文 我和宋清朗相戀三年友多,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片堤框。...
    茶點故事閱讀 40,505評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡域滥,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蜈抓,到底是詐尸還是另有隱情启绰,我是刑警寧澤,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布沟使,位于F島的核電站委可,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏腊嗡。R本人自食惡果不足惜着倾,卻給世界環(huán)境...
    茶點故事閱讀 41,873評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望燕少。 院中可真熱鬧卡者,春花似錦、人聲如沸客们。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至嗽桩,卻和暖如春岳守,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背碌冶。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評論 1 272
  • 我被黑心中介騙來泰國打工湿痢, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人扑庞。 一個月前我還...
    沈念sama閱讀 48,921評論 3 376
  • 正文 我出身青樓譬重,卻偏偏與公主長得像,于是被迫代替她去往敵國和親罐氨。 傳聞我的和親對象是個殘疾皇子臀规,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,515評論 2 359

推薦閱讀更多精彩內(nèi)容