該如何選擇最適合你的開源框架?

開發技術 2019-03-10

很多神經網絡框架已開源多年,支持機器學習和人工智能的專有解決方案也有很多。多年以來,開發人員在Github上發布了一系列的可以支持圖像、手寫字、視頻、語音識別、自然語言處理、物體檢測的機器學習框架,但并沒有一種框架可以完美地解決你所有的需求。那么該如何選擇最適合你的開源框架呢?希望下面帶有描述的圖表以及分析可以帶給你以啟發,以此來選擇最適合你的業務需求的框架。下圖總結了絕大多數Github上的開源深度學習框架項目,根據項目在Github的Star數量來評級。

 

TensorFlow

TensorFlow框架的前身是Google的DistBelief V2,是谷歌大腦項目的深度網絡工具庫,一些人認為TensorFlow是借鑒Theano重構的。

Tensorflow一經開源,馬上引起了大量開發者的跟進。Tensorflow廣泛支持包括圖像、手寫字、語音識別、預測和自然語言處理等大量功能。TensorFlow遵循Apache 2.0開源協議。

TensorFLow提供這些工具:

TensorBroad是一個設計優良的可視化網絡構建和展示工具;

TensorFlow Serving通過保持相同的服務器架構和API,可以方便地配置新算法和環境。TensorFlow Serving 還提供開箱即用的模型,并且可以輕松擴展以支持其他的模型和數據。

TensorFlow編程接口包括Python和C++,Java,Go,R和Haskell語言的接口也在alpha版中支持。另外,TensorFlow還支持谷歌和亞馬遜的云環境。

TensorFlow的0.12版本支持Windows 7, 8, Server 2016系統。由于采用C++ Eigen庫,TensorFlow類庫可以在ARM架構平臺上編譯和優化。這意味著你可以不需要額外實現模型解碼器或者Python解釋器就可以在多種服務器和移動設備上部署訓練好的模型。

TensorFlow提供細致的網絡層使用戶可以構建新的復雜的層結構而不需要自己從底層實現它們。子圖允許用戶查看和恢復圖的任意邊的數據。這對復雜計算的Debug非常有用。

分布式TensorFlow在0.8版本推出,提供了并行計算支持,可以讓模型的不同 部分在不同設備上并行訓練。

TensorFlow在斯坦福大學,伯克利學院,多倫多大學和Udacity(2016年3月成立的在線學校)均有教學。

TensorFlow的缺點有:

每個計算流必須構建成圖,沒有符號循環,這樣使得一些計算變得困難;

沒有三維卷積,因此無法做視頻識別;

即便已經比原有版本(0.5)快了58倍,但執行性能仍然不及它的競爭者。

Caffe

Caffe是賈揚清的作品,目前,賈揚清是Facebook AI平臺的Lead。始于2013年末,Caffe可能是第一個主流的工業級的深度學習工具包。Caffe具有卓越的卷積模型,是計算機視覺領域最受歡迎的工具之一,且2014年ImageNet 大賽的獲獎作品使用的就是Caffe框架。Caffe遵循BSD 2-Clasuse 協議。在此我向大家推薦一個大數據技術交流圈: 658558542 突破技術瓶頸,提升思維能力 。

Caffe的高速使得它非常適合于科研和商業領域。利用一個NVIDIA K40 GPU,Caffe可以每天處理60M張圖片,即推斷1毫秒一張,訓練4毫秒一張。使用最新的版本,甚至可以更快。

Caffe底層是用C++實現的,可以在各種設備上編譯。Caffe是跨平臺的并且提供Windows接口,它提供C++,Python和Matlab語言接口。Caffe擁有著龐大的用戶社區,并且有大量深度網絡模型在社區上貢獻,被稱為“Model Zoo”。其中,AlexNet和GoogleNet是最著名的兩個。

Caffe是視覺識別的流行框架,然而Caffe不提供像TensorFlow,CNTK或Theano一樣細粒度的層結構。你必須編寫底層代碼來構建復雜的層結構。由于它的固有架構,Caffe對循環網絡和語言模型的支持不力。

Caffe2

賈揚清和他的團隊目前在Facebook致力于Caffe2的研發。2017年4月18號,Facebook基于BSD協議開源了Caffe2。Caffe2聚焦于模塊化,在移動設備和大規模部署均表現出色。和TensorFlow一樣,Caffe2頁使用C++ Eigen以支持ARM架構。

Caffe的模型可以通過腳本輕松轉化成Caffe2模型。Caffe在設計上的傾向使得它特別適合視覺相關的問題,Caffe2沿襲了它對視覺問題的強大支持,同時還加入了RNN和LSTM以更好地支持自然語言處理,手寫字識別和時間序列預測。

可以預見在不遠的將來Caffe2將會替代Caffe在深度學習社區的地位。

Microsoft Cognitive Toolkit

Microsoft Cognitive Toolkit(CNTK)設計的初衷是用于語音識別領域。CNTK支持RNN(循環神經網絡)和CNN(卷積神經網絡),因此他有能力勝任圖像、手寫字和語音識別問題。CNTK支持64位Linux和Windows系統,提供Python和C++語言接口,遵循MIT協議。

CNTK與TensorFlow和Theano有著類似的設計理念——把網絡定義成向量操作的語義圖,向量操作例如矩陣加法、矩陣乘法以及卷積。同時,CNTK也提供細粒度的網絡層設計,允許用戶使用它們設計新的復雜網絡。

和Caffe一樣,CNTK底層也是C++實現并具有跨平臺CPU/GPU支持。搭載在Azure GPU Lab上,CNTK能發揮出最高的分布式計算性能。目前,CNTK由于不支持ARM架構,限制了其在移動端的應用。

MXNet

MXNet源自于卡內基梅隆大學和華盛頓大學。MXNet是一個極具特色,可編程,可擴展的深度學習框架。MXNet可以混合多種語言的模型和代碼,包括Python, C++, R, Scala, Julia, Matlab, JavaScript。2017年1月30號,MXNet被納為Apache基金會孵化項目。

MXNet支持CNN、RNN、LSTM, 提供對圖像,手寫字,語音識別,預測和自然語言問題的強大支持。有人認為,MXNet是世界上最好的圖像分類器。

MXNet具有出色的可擴展性,例如GPU并行計算,存儲映像,高速開發和可移植性。另外,MXNet可以和Apache hadoop YARN結合,YARN是一個通用分布式應用管理框架,這一特性使得MXNet成為TensorFlow的競爭者。

MXNet的一個獨特之處是它是少有的幾個支持對抗生成網絡(GAN)的框架之一。這個模型被用于實驗經濟學方法中的“納什均衡”。

另一個特殊之處是,亞馬遜的CTO Werner Vogels宣布了對MXNet的支持:“今天,我們宣布MXNet將成為亞馬遜的深度學習框架選擇。我們將在現有和未來將出現的服務中使用MXNet。”蘋果公司的部分傳聞也表示該公司將會使用MXNet作為其深度學習框架。

Torch

Torch由Facebook的Royan Collobert、Soumith Chintala、曾任于Twitter現任于Nvidia的Clement Farabet和Google Deep Mind 的Koray Kavukcuoglu共同開發。其主要貢獻者是Facebook、Twitter和Nvidia。 Torch遵守BSD 3 clause 開源協議。然而,Facebook近期宣布將轉向Caffe2作為其首選深度學習框架因為它支持移動設備開發。

Torch由Lua語言實現,Lua是一種小眾語言,因此若你不熟悉這門語言,會影響到整個工作的效率。

Torch缺少像TensorFlow、MXNet on YARN和Deeplearning4J那樣的的分布式支持,缺少多種語言接口同樣限制了它的受眾。

DeepLearning4J

DeepLearning4J(DL4J)是基于Apache 2.0協議的分布式開源神經網絡類庫,它由Java和Scala實現。DL4J是SkyMind的Adam Gibson開發的,它是唯一的商品級深度學習網絡,可以和Hadoop、Spark結合構建多用戶多線程服務。DL4J是唯一使用Map-Reduce訓練網絡而使用其他類庫進行大規模矩陣操作的框架。在此我向大家推薦一個大數據技術交流圈: 658558542 突破技術瓶頸,提升思維能力 。

DL4J擁有內建的GPU支持,這一重要特性能夠支持YARN上的訓練過程。DL4J擁有豐富的深度神經網絡架構支持,包括RBM,DBN,CNN,RNN,RNTN和LSTM。DL4J還支持一個向量計算庫——Canova。

由于是由Java實現,DL4J先天比Python塊,它使用多GPU執行圖像識別任務和Caffe一樣快。該框架可以出色完成圖像識別,欺詐檢測和自然語言處理任務。

Theano

Theano主要由蒙特利爾大學學習算法研究所(MILA)創立。Yoshua Bengio是Theano的開創者,同時領導這個實驗室,該實驗室在深度學習研究領域做出巨大的貢獻,培養出約100名相關學生和從業者。Theano支持高效機器學習算法的快速開發,遵守BSD開源協議。

Theano不像TensorFlow那樣優雅,但它提供了支持循環控制(被稱為scan)的API,可以輕松實現RNN。

Theano提供多種支持手寫字識別、圖像分類(包括醫學圖像)的卷積模型。Theano還提供三維卷積和池化用于視頻分類。在語言方面,Theano能勝任例如理解、翻譯和生成等自然語言處理任務。Theano還支持生成對抗網絡(GAN),GAN即是由MILA的一位學生提出的。

Theano支持多GPU并行計算并且自帶分布式框架。Theano只支持一種開發語言,比TensorFlow速度快很多,是一種學術研究的有力工具。然而,其不支持移動平臺以及沒有多種語言接口的缺陷限制了它在企業的廣泛應用。

開源與專利軟件之爭

隨著深度學習逐漸成熟,可以預知到我們將見證TensorFlow,Caffe2和MXNet的競賽。同時,軟件供應商也在提供先進的AI產品使你從數據中獲取更多價值。問題是:你會購買帶有專利的AI產品還是使用開源框架。如果使用開源框架,你將會面臨哪種框架最適合你的問題的選擇困難。而選擇專利軟件,你又將怎樣制定退出策略?任何一種選擇都需要長遠考慮。


中國· 上海

谷谷二維碼
添加微信咨詢

CopyRight?2009-2019 上海谷谷網絡科技有限公司 All Rights Reserved.  

關于我們 | 聯系我們

捕鱼平台兑换 广东时时一注多少钱 湖北3d开奖结果 全天pk10计划免费 搜狐北京pk直播 小鱼儿心水高手论坛资料 福建快3走势图今天 香港马会49走势图 湖北快3今日开奖号码走势图 江苏快三号码统计表 北京赛pk10盛世直播