久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
    分享

    詳解 6 大主流深度學習框架

     北書房2014 2022-03-21

    導讀:近幾年,隨著深度學習的爆炸式發(fā)展,相關理論和基礎架構得到了很大突破,它們奠定了深度學習繁榮發(fā)展的基礎。這其中涌現了幾個著名的深度學習平臺,本文將對這些平臺進行簡要介紹。

    作者:涂銘 金智勇

    來源:華章科技

    文章圖片1

    01 Theano

    文章圖片2

    Theano由LISA集團(現MILA)在加拿大魁北克的蒙特利爾大學開發(fā),是在BSD許可證下發(fā)布的開源項目,它是用一位希臘數學家的名字命名的。

    Theano是一個Python庫,可用于定義、優(yōu)化和計算數學表達式,特別是多維數組(numpy.ndarray)。在解決包含大量數據問題的時候,使用Theano編程可實現比C語言編程更快的運行速度。通過GPU加速,Theano甚至可以比基于CPU計算的C語言快好幾個數量級。

    Theano結合 CAS(Computer Algebra System,計算機代數系統)和優(yōu)化編譯器,還可以為多種數學運算生成定制的C語言代碼。對于處理包含重復計算的復雜數學表達式任務,計算速度很重要,因此這種CAS和優(yōu)化編譯器的組合非常有用。對于需要將每種不同的數學表達式都計算一遍的情況,Theano可以最小化編譯/解析計算量,但仍會給出如自動微分那樣的符號特征。

    在過去很長一段時間里,Theano是深度學習開發(fā)與研究的行業(yè)標準。出身學界的Theano最初是為學術研究而設計的,這使得深度學習領域的許多學者至今仍在使用Theano。

    但隨著TensorFlow在谷歌的支持下強勢崛起,Theano日漸式微,使用的人越來越少。其中標志性事件是Theano的創(chuàng)始者之一Ian GoodFellow放棄Theano轉去谷歌開發(fā)TensorFlow了。

    2017年9月28日,在Theano 1.0正式版發(fā)布前夕,LISA實驗室負責人、深度學習三巨頭之一的Yoshua Bengio宣布Theano將停止開發(fā):“Theano is Dead.”

    盡管Theano將退出歷史舞臺,但作為第一個Python深度學習框架,它很好地完成了自己的使命—為深度學習研究人員早期拓荒提供了極大的幫助,同時也為之后深度學習框架的開發(fā)奠定了基本設計方向:以計算圖為框架的核心,采用GPU加速計算。

    對于深度學習新手,可以使用Theano做入門練習,但對于職業(yè)開發(fā)者,建議使用 TensorFlow。

    02 TensorFlow

    文章圖片3

    TensorFlow是Google Brain團隊基于Google在2011年開發(fā)的深度學習基礎架構DistBelief構建的。Google在其所有的應用程序中都使用TensorFlow實現機器學習,例如使用Google照相機和Google語音搜索功能,就間接使用了TensorFlow模型。

    TensorFlow在很大程度上可以看作Theano的后繼者,這不僅因為它們有很大一批共同的開發(fā)者,還因為它們擁有相近的設計理念,都基于計算圖實現自動微分系統。TensorFlow 使用數據流圖進行數值計算,圖中的節(jié)點代表數學運算,圖中的邊代表在這些節(jié)點之間傳遞的多維數組。

    TensorFlow編程接口支持Python和C++,TensorFlow 1.0版本開始支持Java、Go、R和Haskell API的Alpha版本。此外,TensorFlow還可以在Google Cloud和AWS中運行。TensorFlow支持Windows 7、Windows 10和Windows Server 2016系統。

    因為TensorFlow使用C++ Eigen庫,所以可以在ARM架構上編譯和優(yōu)化。這也就意味著用戶可以在各種服務器和移動設備上部署自己的訓練模型,無須執(zhí)行單獨的模型解碼器或者加載Python解釋器。

    作為當前最流行的深度學習框架,TensorFlow獲得了極大的成功,但在學習過程中讀者也需要注意下面一些問題。

    • 因為TensorFlow的接口在不斷地快速迭代,并且版本之間不兼容,所以在開發(fā)和調試過程中可能會出現問題,例如開源代碼無法在新版的TensorFlow上運行。
    • 想學習TensorFlow底層運行機制的讀者需要做好心理準備,TensorFlow在GitHub代碼倉庫的總代碼量超過100萬行,系統設計比較復雜,這將是一個漫長的學習過程。
    • 在代碼層面,對于同一個功能,TensorFlow提供了多種實現,這些實現良莠不齊,使用中還有細微的區(qū)別,請讀者注意選擇。另外,TensorFlow創(chuàng)造了圖、會話、命名空間、PlaceHolder等諸多抽象概念,對普通用戶來說較難理解。

    憑借Google強大的推廣能力,TensorFlow已經成為當今最火的深度學習框架,不完美但是最流行。因為各公司使用的框架不統一,所以我們有必要多學習幾個流行框架作為知識儲備,TensorFlow無疑是一個不錯的選擇。

    03 MXNet

    文章圖片4

    MXNet是亞馬遜首席科學家李沐帶領團隊開發(fā)的深度學習框架,擁有類似Theano和TensorFlow的數據流圖,為多GPU架構提供了良好的配置,擁有類似Lasagne和Blocks的高級別模型構建塊,可以在我們需要的任何硬件上運行(包括手機)。除了支持Python,MXNet同樣提供了對 R、Julia、C++、Scala、Matlab、Go和Java的接口。

    MXNet因其超強的分布式、內存/顯存優(yōu)化能力受到開發(fā)者的歡迎。同樣的模型,MXNet往往占用的內存和顯存更小,在分布式環(huán)境下,MXNet展現出了明顯優(yōu)于其他框架的擴展性能。

    MXNet的缺點是推廣力度不夠、接口文檔不完善。雖然MXNet版本快速迭代,但官方API文檔卻長時間未更新,導致新用戶難以掌握新版本的MXNet,而老用戶又需要查閱源碼才能真正理解MXNet接口的用法。MXNet文檔比較混亂,不太適合新手入門,但其分布性能強大,語言支持比較多,比較適合在云平臺使用。

    04 Keras

    文章圖片5

    Keras是一個高層神經網絡API,使用Python編寫,并將TensorFlow、Theano及CNTK作為后端。Keras為支持快速實驗而生,能夠快速實現開發(fā)者的想法。Keras目前是最容易上手的深度學習框架,它提供了一致且簡潔的API,能夠極大減少一般應用下用戶的工作量。

    相比于深度學習框架,Keras更像是一個深度學習接口,它構建于第三方框架之上。Keras的缺點很明顯:過度封裝導致喪失了靈活性。Keras最初作為Theano的高級API,后來增加了TensorFlow和CNTK作為后端。

    為了屏蔽后端的差異性,Keras提供了一致的用戶接口并做了層層封裝,導致用戶在新增操作或是獲取底層的數據信息時過于困難。同時,過度封裝也使得Keras的程序運行十分緩慢,許多Bug都隱藏于封裝之中。在絕大多數場景下,Keras是本文介紹的所有框架中運行最慢的。

    學習Keras十分容易,但是很快就會遇到瓶頸,因為它不夠靈活。另外,在使用Keras的大多數時間里,用戶主要是在調用接口,很難真正學習到深度學習的內容。

    Keras的過度封裝使其并不適合新手學習(無法理解深度學習的真正內涵),故不推薦。

    05 PyTorch

    文章圖片6

    PyTorch是一個Python優(yōu)先的深度學習框架,能夠在強大的GPU加速基礎上實現張量和動態(tài)神經網絡。

    PyTorch提供了完整的使用文檔、循序漸進的用戶指南,作者親自維護PyTorch論壇,方便用戶交流和解決問題。

    Facebook人工智能研究院FAIR對PyTorch的推廣提供了大力支持。作為當今排名前三的深度學習研究機構,FAIR的支持足以確保PyTorch獲得持續(xù)開發(fā)、更新的保障,不至于像一些個人開發(fā)的框架那樣曇花一現。如有需要,我們也可以使用Python軟件包(如NumPy、SciPy和Cython)來擴展 PyTorch。

    相對于TensorFlow,PyTorch的一大優(yōu)點是它的圖是動態(tài)的,而TensorFlow框架是靜態(tài)圖,不利于擴展。同時,PyTorch非常簡潔,方便使用。本書選取PyTorch為主要的實現框架。

    如果說TensorFlow的設計是“Make it complicated”,Keras的設計是“Make it complicated and hide it”,那么PyTorch的設計則真正做到了“Keep it simple,stupid”。

    06 Caffe

    文章圖片7

    Caffe是基于C++編寫的深度學習框架,作者是賈揚清,源碼開放(具有Licensed BSD)并提供了命令行工具以及Matlab和Python接口。

    Caffe一直是深度學習研究者使用的框架,很多研究人員在上面進行開發(fā)和優(yōu)化,因而有了不少沉淀,因此Caffe也是流行的深度學習框架之一。盡管如此,Caffe也存在不支持多機、跨平臺、可擴展性差等問題。初學使用Caffe還需要注意下面兩個問題。

    • Caffe的安裝過程需要大量的依賴庫,因此涉及很多安裝版本問題,初學者須多加注意。
    • 當用戶要實現一個新的層,就需要用C++實現它的前向傳播和反向傳播代碼,而如果想要新層運行在GPU上,則需要同時使用CUDA實現這一層的前向傳播和反向傳播。

    Caffe2出自Facebook人工智能實驗室與應用機器學習團隊,賈楊清仍是主要貢獻者之一。Caffe2在工程上做了很多優(yōu)化,比如運行速度、跨平臺、可擴展性等,它可以看作Caffe更細粒度的重構,但在設計上,Caffe2其實和TensorFlow更像。目前Caffe2代碼已開源。

    在工業(yè)界和學術界仍有很多人使用Caffe,而Caffe2的出現給我們提供了更多的選擇。

      本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發(fā)現有害或侵權內容,請點擊一鍵舉報。
      轉藏 分享 獻花(0

      0條評論

      發(fā)表

      請遵守用戶 評論公約

      類似文章 更多

      主站蜘蛛池模板: 亚洲国产成人AV在线电影播放| 亚洲熟妇无码一区二区三区| 无码一区二区三区AV免费| 97精品久久久久中文字幕| 中文字幕久久国产精品| 国产重口老太和小伙| 97人妻人人揉人人躁人人| 亚洲人成网站77777在线观看| 无码AV无码天堂资源网影音先锋| 亚洲欧美日韩中文在线制服| 国产午夜亚洲精品不卡网站| 伊人久久无码大香线蕉综合| 国产精品自在自线视频| 无码国内精品人妻少妇| 激情 自拍 另类 亚洲| 日韩人妻无码一区二区三区99| 国产AV老师黑色丝袜美腿| 国产一区二区三区美女| 国产裸体美女视频全黄| 久久精品国产清自在天天线| 免费看成人毛片无码视频| 欧美野外伦姧在线观看| 国内精品久久久久久久影视| 人妻中文字幕精品系列| 亚洲AV天天做在线观看| 最新国产AV最新国产在钱| 成人H动漫精品一区二区无码| 成人3D动漫一区二区三区| 久久综合九色欧美综合狠狠| 999ZYZ玖玖资源站在线观看| 成人亚欧欧美激情在线观看| 久久精品国产亚洲AV无码偷窥| 日本XXXX色视频在线观看免费不卡 | 99热精国产这里只有精品| 97人人超碰国产精品最新O| 国产亚洲精品自在久久蜜TV| 高清自拍亚洲精品二区| 丰满少妇内射一区| 精品国偷自产在线视频| 夜鲁鲁鲁夜夜综合视频| 亚洲免费成人av一区|