您的位置 > 自欺欺人一尾中特 > 商業智能 > TensorFlow、MXNet、Keras如何取舍? 常用深度學習框架對比深度學習

9287玄机解一尾中特:TensorFlow、MXNet、Keras如何取舍? 常用深度學習框架對比深度學習

自欺欺人一尾中特 www.jauzy.icu 來源:煉數成金 | 2019-02-19 | 發布:經管之家

作者簡介

魏秀參,曠視科技 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 個目前最常用的深度學習開源框架進行了對比。 


14.2 常用框架的各自特點

14.2.1 Caffe

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


✓ 適合前饋網絡和圖像處理;

        ✓ 適合微調已有的網絡模型;

        ✓ 訓練已有網絡模型無需編寫任何代碼;

        ✓ 提供方便的 Python 和 MATLAB 接口; 


✗ 可單機多卡,但不支持多機多卡;

        ✗ 需要用 C++/CUDA 編寫新的 GPU 層;

        ✗ 不適合循環網絡;

        ✗ 用于大型網絡(如, GoogLeNet、 ResNet )時過于繁瑣;

        ✗ 擴展性稍差,代碼有些不夠精簡;

        ✗ 不提供商業支持;

        ✗ 框架更新緩慢,可能之后不再更新。 


14.2.2 Deeplearning4j

Deeplearning4j 簡稱 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 MXNet

MXNet 是一個提供多種 API 的機器學習框架,主要面向 R、Python 和 Julia 等語言,目前已被亞馬遜云服務采用。其優缺點為:

✓ 可跨平臺使用;

✓ 支持多種語言接口;


        ✗ 不支持自動求導。


14.2.5 MatConvNet

MatConvNet 由英國牛津大學著名計算機視覺和機器學習研究組 VGG 負責開發,是主要基于 MATLAB 的深度學習工具包。其優缺點為:

        ✓ 基于 MATLAB,便于進行圖像處理和深度特征后處理;

 ✓ 提供了豐富的預訓練模型;

✓ 提供了充足的文檔及教程;


✗ 不支持自動求導; 

✗ 跨平臺能力差。


14.2.6 TensorFlow

TensorFlow 是 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 Torch

Torch 是用 Lua 編寫帶 API 的科學計算框架,支持機器學習算法。Facebook 和 Twitter 等大型科技公司使用 Torch 的某些版本,由內部團隊專門負責定制自己的深度學習平臺。其優缺點如下:

✓ 大量??榛榧?,容易組合;

✓ 易編寫新的網絡層;

✓ 支持豐富的預訓練模型;

✓ PyTorch 為 Torch 提供了更便利的接口;


✗ 使用 Lua 語言需要學習成本;

✗ 文檔質量參差不齊;

✗ 一般需要自己編寫訓練代碼(即插即用相對較少)。


聲明:文章收集于網絡,如有侵權,請聯系小編及時處理,謝謝!


歡迎加入本站公開興趣群

商業智能與數據分析群

興趣范圍包括各種讓數據產生價值的辦法,實際應用案例分享與討論,分析工具,ETL工具,數據倉庫,數據挖掘工具,報表系統等全方位知識

QQ群:81035754

本文已經過優化顯示,查看原文請點擊以下鏈接:
查看原文://bi.dataguru.cn/article-14535-1.html
京ICP備11001960號  京ICP證090565號 京公網安備1101084107號 論壇法律顧問:王進律師知識產權?;ど?/a>免責及隱私聲明   主辦單位:自欺欺人一尾中特 版權所有
聯系QQ:2881989700  郵箱:[email protected]
合作咨詢電話:(010)62719935 廣告合作電話:13661292478(劉老師)

投訴電話:(010)68466864 不良信息處理電話:(010)68466864