天蠶在你身邊
不方便打電話?讓天蠶聯(lián)絡(luò)你
天蠶在你身邊
不方便打電話?讓天蠶聯(lián)絡(luò)你
開源與專利軟件之爭
重慶網(wǎng)絡(luò)公司隨著深度學(xué)習(xí)逐漸成熟,可以預(yù)知到我們將見證TensorFlow,Caffe2和MXNet的競賽。同時,軟件供應(yīng)商也在提供先進的AI產(chǎn)品使你從數(shù)據(jù)中獲取更多價值。問題是:你會購買帶有專利的AI產(chǎn)品還是使用開源框架。如果使用開源框架,你將會面臨哪種框架最適合你的問題的選擇困難。而選擇專利軟件,你又將怎樣制定退出策略?任何一種選擇都需要長遠考慮。
很多神經(jīng)網(wǎng)絡(luò)框架已開源多年,支持機器學(xué)習(xí)和人工智能的專有解決方案也有很多。多年以來,開發(fā)人員在Github上發(fā)布了一系列的可以支持圖像、手寫字、視頻、語音識別、自然語言處理、物體檢測的機器學(xué)習(xí)框架,但并沒有一種框架可以完美地解決你所有的需求。那么該如何選擇最適合你的開源框架呢?希望下面帶有描述的圖表以及分析可以帶給你以啟發(fā),以此來選擇最適合你的業(yè)務(wù)需求的框架。下圖總結(jié)了絕大多數(shù)Github上的開源深度學(xué)習(xí)框架項目,根據(jù)項目在Github的Star數(shù)量來評級。
TensorFlow
TensorFlow框架的前身是Google的DistBelief V2,是谷歌大腦項目的深度網(wǎng)絡(luò)工具庫,一些人認為TensorFlow是借鑒Theano重構(gòu)的。
Tensorflow一經(jīng)開源,馬上引起了大量開發(fā)者的跟進。Tensorflow廣泛支持包括圖像、手寫字、語音識別、預(yù)測和自然語言處理等大量功能。TensorFlow遵循Apache 2.0開源協(xié)議。
TensorFLow提供這些工具:
TensorBroad是一個設(shè)計優(yōu)良的可視化網(wǎng)絡(luò)構(gòu)建和展示工具;
TensorFlow的0.12版本支持Windows 7, 8, Server 2016系統(tǒng)。由于采用C++ Eigen庫,TensorFlow類庫可以在ARM架構(gòu)平臺上編譯和優(yōu)化。這意味著你可以不需要額外實現(xiàn)模型解碼器或者Python解釋器就可以在多種服務(wù)器和移動設(shè)備上部署訓(xùn)練好的模型。
TensorFlow Serving通過保持相同的服務(wù)器架構(gòu)和API,可以方便地配置新算法和環(huán)境。TensorFlow Serving 還提供開箱即用的模型,并且可以輕松擴展以支持其他的模型和數(shù)據(jù)。
TensorFlow編程接口包括Python和C++,Java,Go,R和Haskell語言的接口也在alpha版中支持。另外,TensorFlow還支持谷歌和亞馬遜的云環(huán)境。
TensorFlow提供細致的網(wǎng)絡(luò)層使用戶可以構(gòu)建新的復(fù)雜的層結(jié)構(gòu)而不需要自己從底層實現(xiàn)它們。子圖允許用戶查看和恢復(fù)圖的任意邊的數(shù)據(jù)。這對復(fù)雜計算的Debug非常有用。
分布式TensorFlow在0.8版本推出,提供了并行計算支持,可以讓模型的不同 部分在不同設(shè)備上并行訓(xùn)練。
TensorFlow在斯坦福大學(xué),伯克利學(xué)院,多倫多大學(xué)和Udacity(2016年3月成立的在線學(xué)校)均有教學(xué)。
TensorFlow的缺點有:
每個計算流必須構(gòu)建成圖,沒有符號循環(huán),這樣使得一些計算變得困難;
沒有三維卷積,因此無法做視頻識別;
即便已經(jīng)比原有版本(0.5)快了58倍,但執(zhí)行性能仍然不及它的競爭者。
Caffe的高速使得它非常適合于科研和商業(yè)領(lǐng)域。利用一個NVIDIA K40 GPU,Caffe可以每天處理60M張圖片,即推斷1毫秒一張,訓(xùn)練4毫秒一張。使用最新的版本,甚至可以更快。
Caffe是賈揚清的作品,目前,賈揚清是Facebook AI平臺的Lead。始于2013年末,Caffe可能是第一個主流的工業(yè)級的深度學(xué)習(xí)工具包。Caffe具有卓越的卷積模型,是計算機視覺領(lǐng)域最受歡迎的工具之一,且2014年ImageNet 大賽的獲獎作品使用的就是Caffe框架。Caffe遵循BSD 2-Clasuse 協(xié)議。在此我向大家推薦一個大數(shù)據(jù)技術(shù)交流圈: 658558542 突破技術(shù)瓶頸,提升思維能力 。
Caffe底層是用C++實現(xiàn)的,可以在各種設(shè)備上編譯。Caffe是跨平臺的并且提供Windows接口,它提供C++,Python和Matlab語言接口。Caffe擁有著龐大的用戶社區(qū),并且有大量深度網(wǎng)絡(luò)模型在社區(qū)上貢獻,被稱為“Model Zoo”。其中,AlexNet和GoogleNet是最著名的兩個。
Caffe是視覺識別的流行框架,然而Caffe不提供像TensorFlow,CNTK或Theano一樣細粒度的層結(jié)構(gòu)。你必須編寫底層代碼來構(gòu)建復(fù)雜的層結(jié)構(gòu)。由于它的固有架構(gòu),Caffe對循環(huán)網(wǎng)絡(luò)和語言模型的支持不力。
Caffe的模型可以通過腳本輕松轉(zhuǎn)化成Caffe2模型。Caffe在設(shè)計上的傾向使得它特別適合視覺相關(guān)的問題,Caffe2沿襲了它對視覺問題的強大支持,同時還加入了RNN和LSTM以更好地支持自然語言處理,手寫字識別和時間序列預(yù)測。
賈揚清和他的團隊目前在Facebook致力于Caffe2的研發(fā)。2017年4月18號,F(xiàn)acebook基于BSD協(xié)議開源了Caffe2。Caffe2聚焦于模塊化,在移動設(shè)備和大規(guī)模部署均表現(xiàn)出色。和TensorFlow一樣,Caffe2頁使用C++ Eigen以支持ARM架構(gòu)。
可以預(yù)見在不遠的將來Caffe2將會替代Caffe在深度學(xué)習(xí)社區(qū)的地位。
Microsoft Cognitive Toolkit
和Caffe一樣,CNTK底層也是C++實現(xiàn)并具有跨平臺CPU/GPU支持。搭載在Azure GPU Lab上,CNTK能發(fā)揮出最高的分布式計算性能。目前,CNTK由于不支持ARM架構(gòu),限制了其在移動端的應(yīng)用。
Microsoft Cognitive Toolkit(CNTK)設(shè)計的初衷是用于語音識別領(lǐng)域。CNTK支持RNN(循環(huán)神經(jīng)網(wǎng)絡(luò))和CNN(卷積神經(jīng)網(wǎng)絡(luò)),因此他有能力勝任圖像、手寫字和語音識別問題。CNTK支持64位Linux和Windows系統(tǒng),提供Python和C++語言接口,遵循MIT協(xié)議。
CNTK與TensorFlow和Theano有著類似的設(shè)計理念——把網(wǎng)絡(luò)定義成向量操作的語義圖,向量操作例如矩陣加法、矩陣乘法以及卷積。同時,CNTK也提供細粒度的網(wǎng)絡(luò)層設(shè)計,允許用戶使用它們設(shè)計新的復(fù)雜網(wǎng)絡(luò)。
MXNet
MXNet源自于卡內(nèi)基梅隆大學(xué)和華盛頓大學(xué)。MXNet是一個極具特色,可編程,可擴展的深度學(xué)習(xí)框架。MXNet可以混合多種語言的模型和代碼,包括Python, C++, R, Scala, Julia, Matlab, JavaScript。2017年1月30號,MXNet被納為Apache基金會孵化項目。
MXNet支持CNN、RNN、LSTM, 提供對圖像,手寫字,語音識別,預(yù)測和自然語言問題的強大支持。有人認為,MXNet是世界上最好的圖像分類器。
MXNet的一個獨特之處是它是少有的幾個支持對抗生成網(wǎng)絡(luò)(GAN)的框架之一。這個模型被用于實驗經(jīng)濟學(xué)方法中的“納什均衡”。
MXNet具有出色的可擴展性,例如GPU并行計算,存儲映像,高速開發(fā)和可移植性。另外,MXNet可以和Apache hadoop YARN結(jié)合,YARN是一個通用分布式應(yīng)用管理框架,這一特性使得MXNet成為TensorFlow的競爭者。
另一個特殊之處是,亞馬遜的CTO Werner Vogels宣布了對MXNet的支持:“今天,我們宣布MXNet將成為亞馬遜的深度學(xué)習(xí)框架選擇。我們將在現(xiàn)有和未來將出現(xiàn)的服務(wù)中使用MXNet。”蘋果公司的部分傳聞也表示該公司將會使用MXNet作為其深度學(xué)習(xí)框架。
Torch
Torch由Facebook的Royan Collobert、Soumith Chintala、曾任于Twitter現(xiàn)任于Nvidia的Clement Farabet和Google Deep Mind 的Koray Kavukcuoglu共同開發(fā)。其主要貢獻者是Facebook、Twitter和Nvidia。 Torch遵守BSD 3 clause 開源協(xié)議。然而,F(xiàn)acebook近期宣布將轉(zhuǎn)向Caffe2作為其首選深度學(xué)習(xí)框架因為它支持移動設(shè)備開發(fā)。
Torch由Lua語言實現(xiàn),Lua是一種小眾語言,因此若你不熟悉這門語言,會影響到整個工作的效率。
Torch缺少像TensorFlow、MXNet on YARN和Deeplearning4J那樣的的分布式支持,缺少多種語言接口同樣限制了它的受眾。
DeepLearning4J
DL4J擁有內(nèi)建的GPU支持,這一重要特性能夠支持YARN上的訓(xùn)練過程。DL4J擁有豐富的深度神經(jīng)網(wǎng)絡(luò)架構(gòu)支持,包括RBM,DBN,CNN,RNN,RNTN和LSTM。DL4J還支持一個向量計算庫——Canova。
DeepLearning4J(DL4J)是基于Apache 2.0協(xié)議的分布式開源神經(jīng)網(wǎng)絡(luò)類庫,它由Java和Scala實現(xiàn)。DL4J是SkyMind的Adam Gibson開發(fā)的,它是唯一的商品級深度學(xué)習(xí)網(wǎng)絡(luò),可以和Hadoop、Spark結(jié)合構(gòu)建多用戶多線程服務(wù)。DL4J是唯一使用Map-Reduce訓(xùn)練網(wǎng)絡(luò)而使用其他類庫進行大規(guī)模矩陣操作的框架。在此我向大家推薦一個大數(shù)據(jù)技術(shù)交流圈: 658558542 突破技術(shù)瓶頸,提升思維能力 。
由于是由Java實現(xiàn),DL4J先天比Python塊,它使用多GPU執(zhí)行圖像識別任務(wù)和Caffe一樣快。該框架可以出色完成圖像識別,欺詐檢測和自然語言處理任務(wù)。
Theano
Theano主要由蒙特利爾大學(xué)學(xué)習(xí)算法研究所(MILA)創(chuàng)立。Yoshua Bengio是Theano的開創(chuàng)者,同時領(lǐng)導(dǎo)這個實驗室,該實驗室在深度學(xué)習(xí)研究領(lǐng)域做出巨大的貢獻,培養(yǎng)出約100名相關(guān)學(xué)生和從業(yè)者。Theano支持高效機器學(xué)習(xí)算法的快速開發(fā),遵守BSD開源協(xié)議。
Theano提供多種支持手寫字識別、圖像分類(包括醫(yī)學(xué)圖像)的卷積模型。Theano還提供三維卷積和池化用于視頻分類。在語言方面,Theano能勝任例如理解、翻譯和生成等自然語言處理任務(wù)。Theano還支持生成對抗網(wǎng)絡(luò)(GAN),GAN即是由MILA的一位學(xué)生提出的。
Theano不像TensorFlow那樣優(yōu)雅,但它提供了支持循環(huán)控制(被稱為scan)的API,可以輕松實現(xiàn)RNN。
Theano支持多GPU并行計算并且自帶分布式框架。Theano只支持一種開發(fā)語言,比TensorFlow速度快很多,是一種學(xué)術(shù)研究的有力工具。然而,其不支持移動平臺以及沒有多種語言接口的缺陷限制了它在企業(yè)的廣泛應(yīng)用。
地址:重慶市渝中區(qū)上清寺鑫隆達B座28-8
郵編:400015
電話:023-63612462
EMAIL:cnjl_net@163.com