當前位置:
首頁 > 科技 > TensorFlow、MXNet、Keras如何取捨?常用深度學習框架對比

TensorFlow、MXNet、Keras如何取捨?常用深度學習框架對比

作者簡介魏秀參,曠視科技 Face++ 南京研究院負責人。南京大學 LAMDA 研究所博士,主要研究領域為計算機視覺和機器學習。在相關領域頂級國際期刊如 IEEE TIP、IEEE TNNLS、Machine Learning Journal 等和頂級國際會議如 ICCV、IJCAI、ICDM 等發表論文十餘篇,並兩次獲得國際計算機視覺相關競賽冠亞軍。著有《解析深度學習——卷積神經網路原理與視覺實踐》一書。曾獲 CVPR 2017 最佳審稿人、南京大學博士生校長特別獎學金等榮譽,擔任 ICCV、CVPR、ECCV、NIPS、IJCAI、AAAI 等國際會議 PC member。(個人自媒體:知乎「魏秀參」,新浪微博「Wilson_NJUer」)。14 深度學習開源工具簡介

自 2006 年 Hinton 和 Salakhutdinov 在 Science 上發表的深度學習論文點燃了最近一次神經網路復興的「星星之火」,接著, 2012 年 Alex-Net 在 ImageNet 上奪冠又迅速促成了深度學習在人工智慧領域的「燎原之勢」。當下深度學習演算法可謂主宰了計算機視覺、自然語言學習等眾多人工智慧應用領域。 與此同時,與學術研究一起快速發展並駕齊驅的還有層出不窮的諸多深度學習 開源開發框架。本章將向讀者介紹和對比 9 個目前使用較多的深度學習開源框架,供大家根據自身情況「擇優納之」。

14.1 常用框架對比表 14.2 中從「開發語言」、「支持平台」、「支持介面」、是否支持「自動求導」、 是否提供「預訓練模型」、是否支持「單機多卡並行」運算等 10 個方面,對包 含 Caffe、 MatConvNet、 TensorFlow、 Theano 和 Torch 在內的 9 個目前最常用的深度學習開源框架進行了對比。

TensorFlow、MXNet、Keras如何取捨?常用深度學習框架對比

TensorFlow、MXNet、Keras如何取捨?常用深度學習框架對比

14.2 常用框架的各自特點

14.2.1 Caffe

Caffe 是一個廣為人知、廣泛應用側重計算機視覺方面的深度學習庫,由加州大學伯克利分校 BVLC 組開發,總結來說, Caffe 有以下優缺點:

? 適合前饋網路和圖像處理; ? 適合微調已有的網路模型; ? 訓練已有網路模型無需編寫任何代碼; ? 提供方便的 Python 和 MATLAB 介面;

? 可單機多卡,但不支持多機多卡; ? 需要用 C++/CUDA 編寫新的 GPU 層; ? 不適合循環網路; ? 用於大型網路(如, GoogLeNet、 ResNet )時過於繁瑣; ? 擴展性稍差,代碼有些不夠精簡; ? 不提供商業支持; ? 框架更新緩慢,可能之後不再更新。

14.2.2 Deeplearning4jDeeplearning4j 簡稱 DL4J,是基於JVM、聚焦行業應用且提供商業支持的分散式深度學習框架,其宗旨是在合理的時間內解決各類涉及大量數據的問題。 它與 Hadoop 和 Spark 集成,可使用任意數量的 GPU 或 CPU 運行。 DL4J 是一種適用於各類平台的攜帶型學習庫。開發語言為 Java,可通過調整 JVM 的堆空間、垃圾回收演算法、內存管理以及 DL4J 的 ETL 數據加工管道來優化 DL4J 的性能。其優缺點為: ? 適用於分散式集群,可高效處理海量數據; ? 在多種晶元上的運行已經被優化; ? 可跨平台運行,有多種語言介面; ? 支持單機多卡和多機多卡; ? 支持自動求導,方便編寫新的網路層; ? 提供商業支持; ? 提供的預訓練模型有限; ? 框架速度不夠快。14.2.3 Keras

Keras 由谷歌軟體工程師 Francois Chollet 開發,是一個基於 Theano 和 TensorFlow 的深度學習庫,具有一個受 Torch 啟發、較為直觀的 API。其優缺點如下: ? 受 Torch 啟發的直觀;? 可使用 Theano、TensorFlow 和 Deeplearning4j 後端; ? 支持自動求導;? 框架更新速度快。

14.2.4 MXNetMXNet 是一個提供多種 API 的機器學習框架,主要面向 R、Python 和 Julia 等語言,目前已被亞馬遜雲服務採用。其優缺點為:? 可跨平台使用;? 支持多種語言介面; ? 不支持自動求導。14.2.5 MatConvNet

MatConvNet 由英國牛津大學著名計算機視覺和機器學習研究組 VGG 負責開發,是主要基於 MATLAB 的深度學習工具包。其優缺點為: ? 基於 MATLAB,便於進行圖像處理和深度特徵後處理; ? 提供了豐富的預訓練模型;? 提供了充足的文檔及教程;

? 不支持自動求導; ? 跨平台能力差。

14.2.6 TensorFlowTensorFlow 是 Google 負責開發的用 Python API 編寫,通過 C/C++ 引擎加速的深度學習框架,是目前受關注最多的深度學習框架。它使用數據流圖集成 深度學習中最常見的單元,並支持許多最新的 CNN 網路結構以及不同設置的 RNN。其優缺點為:? 具備不局限於深度學習的多種用途,還有支持強化學習和其他演算法的工具;? 跨平台運行能力強;? 支持自動求導;? 運行明顯比其他框架慢;? 不提供商業支持。14.2.7 Theano

Theano 是深度學習框架中的元老,用 Python 編寫,可與其他學習庫配合使用,非常適合學術研究中的模型開發。現在已有大量基於 Theano 的開源深度學習庫,包括 Keras、Lasagne 和 Blocks。這些學習庫試著在 Theano 有時不夠直觀的介面之上添加一層便於使用的 API。關於 Theano,有如下特點: ? 支持 Python 和 Numpy;? 支持自動求導;? RNN 與計算圖匹配良好;? 高級的包裝(Keras、Lasagne)可減少使用時的麻煩;

? 編譯困難,錯誤信息可能沒有幫助;? 運行模型前需編譯計算圖,大型模型的編譯時間較長; ? 僅支持單機單卡;? 對預訓練模型的支持不夠完善。

14.2.8 TorchTorch 是用 Lua 編寫帶 API 的科學計算框架,支持機器學習演算法。Facebook 和 Twitter 等大型科技公司使用 Torch 的某些版本,由內部團隊專門負責定製自己的深度學習平台。其優缺點如下:? 大量模塊化組件,容易組合;? 易編寫新的網路層;? 支持豐富的預訓練模型;? PyTorch 為 Torch 提供了更便利的介面;

? 使用 Lua 語言需要學習成本;? 文檔質量參差不齊;? 一般需要自己編寫訓練代碼(即插即用相對較少)。

本文節選自電子工業出版社博文視點《解析深度學習——卷積神經網路原理與視覺實踐》第14章,由作者本人和電子工業出版社博文視點授權。由於篇幅考慮,通過文後二維碼訪問各大網上商城購買。

本次活動我們採取文章留言送書的活動。在下周末之前,留言點贊數最高的前 3 名我們將免費贈送本書!圖書由電子工業出版社博文視點提供。

《解析深度學習》全書內容概覽

TensorFlow、MXNet、Keras如何取捨?常用深度學習框架對比

TensorFlow、MXNet、Keras如何取捨?常用深度學習框架對比

TensorFlow、MXNet、Keras如何取捨?常用深度學習框架對比

TensorFlow、MXNet、Keras如何取捨?常用深度學習框架對比

TensorFlow、MXNet、Keras如何取捨?常用深度學習框架對比

參考閱讀:

技術原創及架構實踐文章,歡迎通過公眾號菜單「聯繫我們」進行投稿。轉載請註明來自高可用架構「ArchNotes」微信公眾號及包含以下二維碼。

高可用架構

改變互聯網的構建方式

長按二維碼 關注「高可用架構」公眾號

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 高可用架構 的精彩文章:

Hystrix已經停止開發,官方推薦替代項目Resilience4j簡介

TAG:高可用架構 |