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ù)量的GPU或CPU運(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柠衍、Scala和Python API(所用的Python API為Keras)洋满。
目錄
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啃沪、 Lasagne 和 Blocks。這些學(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)稀疏編碼
- 亞馬遜可能沒有共享示例運(yùn)行結(jié)果最優(yōu)化所必需的全部信息
- 亞馬遜已決定在AWS上使用另一個框架。
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群叶、Hadoop或Akka和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教程
- 深度神經(jīng)網(wǎng)絡(luò)簡介
- 卷積網(wǎng)絡(luò)教程
- LSTM和循環(huán)網(wǎng)絡(luò)教程
- 通過DL4J使用循環(huán)網(wǎng)絡(luò)
- MNIST中的深度置信網(wǎng)絡(luò)
- 用Canova定制數(shù)據(jù)加工管道
- 受限玻爾茲曼機(jī)
- 本征向量憋槐、PCA和熵
- 深度學(xué)習(xí)詞匯表
- Word2vec双藕、Doc2vec和GloVe
轉(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/