1. 程式人生 > >從TensorFlow到PyTorch:九大深度學習框架哪款最適合你?

從TensorFlow到PyTorch:九大深度學習框架哪款最適合你?

方法 愛好 board ebo 部分 速度 智能 這也 解釋器

開源的深度學習神經網絡正步入成熟,而現在有許多框架具備為個性化方案提供先進的機器學習和人工智能的能力。那麽如何決定哪個開源框架最適合你呢?本文試圖通過對比深度學習各大框架的優缺點,從而為各位讀者提供一個參考。你最看好哪個深度學習框架呢?

現在的許多機器學習框架都可以在圖像識別、手寫識別、視頻識別、語音識別、目標識別和自然語言處理等許多領域大展身手,但卻並沒有一個完美的深度神經網絡能解決你的所有業務問題。所以,本文希望下面的圖表和講解能夠提供直觀方法,幫助讀者解決業務問題。

下圖總結了在 GitHub 中最受歡迎的開源深度學習框架排名,該排名是基於各大框架在 GitHub 裏的收藏數,這個數據由 Mitch De Felice 在 2017 年 5 月初完成。

技術分享

TensorFlow

地址: https://www.tensorflow.org/

TensorFlow 最開始是由谷歌一個稱之為 DistBelief V2 的庫發展而來,它是一個公司內部的深度神經網絡庫,隸屬於谷歌大腦項目。有一些人認為 TensorFlow 是由 Theano 徹底重構而來。

谷歌開源 TensorFlow 後,立即吸引了一大批開發愛好者。TensorFlow 可以提供一系列的能力,例如圖像識別、手寫識別、語音識別、預測以及自然語言處理等。2015 年 11 月 9 號,TensorFlow 在 Apache 2.0 協議下開源發布。

TensorFlow 1.0 版本已於 2017 年 2 月 15 日發布,這個版本是之前 8 個版本的優化改進版,其致力於解決 Tensorflow 之前遇到的一系列問題以及完善一些核心能力。TensorFlow 獲得成功的因素有:

TensorFlow 提供了如下工具http://aomenyonli.cn/:

TensorBoard:對於網絡模型和效果來說是一個設計優良的可視化工具。

TensorFlow Serving:可以保持相同的服務器架構和 API,使得部署新算法和實驗變得簡單。TensorFlow Serving 提供了與 TensorFlow 模型開箱即用的整合,但同時還能很容易擴展到其它類型的模型和數據。

TensorFlow 編程接口支持 Python 和 C++。隨著 1.0 版本的公布,Java、Go、R 和 Haskell API 的 alpha 版本也將被支持。此外,TensorFlow 還可在谷歌雲和亞馬孫雲中運行。

隨著 0.12 版本的發行,TensorFlow 將支持 Windows 7、 Windows 10 和 Server 2016。由於 TensorFlow 使用 C++ Eigen 庫,所以庫可在 ARM 架構上編譯和優化。這也就意味著你可以在各種服務器和移動設備上部署你的訓練模型,而無需執行單獨的模型解碼器或者加載 Python 解釋器。

TensorFlow 支持細粒度的網格層,而且允許用戶在無需用低級語言實現的情況下構建新的復雜的層類型。子圖執行操作允許你在圖的任意邊緣引入和檢索任意數據的結果。這對調試復雜的計算圖模型很有幫助。

分布式 TensorFlow(Distributed TensorFlowhttp://dajinnylee.cn/)被加進了 0.8 版本,它允許模型並行,這意味著模型的不同部分可在不同的並行設備上被訓練。

自 2016 年 3 月,斯坦福大學、伯克利大學、多倫多大學和 Udacity 都將這個框架作為一個免費的大規模在線開放課程進行教授。

TensorFlow 的缺點如下:

TensorFlow 的每個計算流都必須構造為一個靜態圖,且缺乏符號性循環(symbolic loops),這會帶來一些計算困難。

沒有對視頻識別很有用的三維卷積(3-D convolution)。

盡管 TensorFlow 現在比起始版本(v0.5)快了 58 倍,,但在執行性能方面依然落後於競爭對手。

Caffe

地址:

Caffe 是賈揚清的傑作,目前他在 Facebook AI 平臺擔任首席工程師。Caffe 可能是自 2013 年底以來第一款主流的工業級深度學習工具包。正因為 Caffe 優秀的卷積模型,它已經成為計算機視覺界最流行的工具包之一,並在 2014 年的 ImageNet 挑戰賽中一舉奪魁。Caffe 遵循 BSD 2-Clause 協議。

Caffe 的快速使其完美應用於實驗研究和商業部署。Caffe 可在英偉達單個 K40 GPU 上每天處理 6000 萬張圖像。這大概是 1 毫秒預測一張圖片,4 毫秒學習一張圖片的速度,而且最新的版本處理速度會更快。

Caffe 基於 C++,因此可在多種設備上編譯。它跨平臺運行,並包含 Windows 端口。Caffe 支持 C++、Matlab 和 Python 編程接口。Caffe 擁有一個龐大的用戶社區,人們在其中為被稱為「Model Zoo(https://github.com/BVLC/caffe/wiki/Model-Zoo)」的深度網絡庫做貢獻。AlexNet 和 GoogleNet 就是社群用戶構建的兩個流行網絡

從TensorFlow到PyTorch:九大深度學習框架哪款最適合你?