RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

八種主流深度學(xué)習(xí)框架的介紹

龍騰亞太 ? 來源:龍騰亞太 ? 作者:龍騰亞太 ? 2022-04-26 18:45 ? 次閱讀

導(dǎo)讀:近幾年隨著深度學(xué)習(xí)算法的發(fā)展,出現(xiàn)了許多深度學(xué)習(xí)框架。這些框架各有所長(zhǎng),各具特色。常用的開源框架有TensorFlow、Keras、Caffe、PyTorch、Theano、CNTK、MXNet、PaddlePaddle、Deeplearning4j、ONNX等。

框架名稱:TensorFlow

主要維護(hù)方:Google

支持的語(yǔ)言:C++/Python/Java/R 等

框架名稱:Keras

主要維護(hù)方:Google

支持的語(yǔ)言:Python/R

框架名稱:Caffe

主要維護(hù)方:BVLC

支持的語(yǔ)言:C++/Python/Matlab

框架名稱:PyTorch

主要維護(hù)方:Facebook

支持的語(yǔ)言:C/C++/Python

框架名稱:Theano

主要維護(hù)方:UdeM

支持的語(yǔ)言:Python

框架名稱:CNTK

主要維護(hù)方:Microsoft

支持的語(yǔ)言:C++/Python/C#/.NET/Java/R

框架名稱:MXNet

主要維護(hù)方:DMLC

支持的語(yǔ)言:C++/Python/R等

框架名稱:PaddlePaddle

主要維護(hù)方:Baidu

支持的語(yǔ)言:C++/Python

框架名稱:Deeplearning4j

主要維護(hù)方:Eclipse

支持的語(yǔ)言:Java/Scala等

框架名稱:ONNX

主要維護(hù)方:Microsoft/ Facebook

支持的語(yǔ)言:Python/R

下面開始對(duì)各框架進(jìn)行概述,讓讀者對(duì)各個(gè)框架有個(gè)簡(jiǎn)單的認(rèn)知,具體的安裝及使用方法不在本文贅述。

01 TensorFlow

谷歌的TensorFlow可以說是當(dāng)今最受歡迎的開源深度學(xué)習(xí)框架,可用于各類深度學(xué)習(xí)相關(guān)的任務(wù)中。TensorFlow = Tensor + Flow,Tensor就是張量,代表N維數(shù)組;Flow即流,代表基于數(shù)據(jù)流圖的計(jì)算。

TensorFlow是目前深度學(xué)習(xí)的主流框架,其主要特性如下所述。

TensorFlow支持Python、JavaScript、C ++、Java、Go、C#、Julia和R等多種編程語(yǔ)言。

TensorFlow不僅擁有強(qiáng)大的計(jì)算集群,還可以在iOSAndroid等移動(dòng)平臺(tái)上運(yùn)行模型。

TensorFlow編程入門難度較大。初學(xué)者需要仔細(xì)考慮神經(jīng)網(wǎng)絡(luò)的架構(gòu),正確評(píng)估輸入和輸出數(shù)據(jù)的維度和數(shù)量。

TensorFlow使用靜態(tài)計(jì)算圖進(jìn)行操作。也就是說,我們需要先定義圖形,然后運(yùn)行計(jì)算,如果我們需要對(duì)架構(gòu)進(jìn)行更改,則需要重新訓(xùn)練模型。選擇這樣的方法是為了提高效率,但是許多現(xiàn)代神經(jīng)網(wǎng)絡(luò)工具已經(jīng)能夠在學(xué)習(xí)過程中改進(jìn),并且不會(huì)顯著降低學(xué)習(xí)速度。在這方面,TensorFlow的主要競(jìng)爭(zhēng)對(duì)手是PyTorch。

RStudio提供了R與TensorFlow的API接口,RStudio官網(wǎng)及GitHub上也提供了TensorFlow擴(kuò)展包的學(xué)習(xí)資料。

02 Keras

Keras是一個(gè)對(duì)小白用戶非常友好且簡(jiǎn)單的深度學(xué)習(xí)框架。如果想快速入門深度學(xué)習(xí), Keras將是不錯(cuò)的選擇。

Keras是TensorFlow高級(jí)集成API,可以非常方便地和TensorFlow進(jìn)行融合。Keras在高層可以調(diào)用TensorFlow、CNTK、Theano,還有更多優(yōu)秀的庫(kù)也在被陸續(xù)支持中。Keras的特點(diǎn)是能夠快速搭建模型,是高效地進(jìn)行科學(xué)研究的關(guān)鍵。

Keras的基本特性如下:

高度模塊化,搭建網(wǎng)絡(luò)非常簡(jiǎn)潔;

API簡(jiǎn)單,具有統(tǒng)一的風(fēng)格;

易擴(kuò)展,易于添加新模塊,只需要仿照現(xiàn)有模塊編寫新的類或函數(shù)即可。

RStudio提供了R與Keras的API接口,RStudio的官網(wǎng)及GitHub上也提供了Keras擴(kuò)展包的學(xué)習(xí)資料。

03 Caffe

Caffe是由AI科學(xué)家賈揚(yáng)清在加州大學(xué)伯克利分校讀博期間主導(dǎo)開發(fā)的,是以C++/CUDA代碼為主的早期深度學(xué)習(xí)框架之一,比TensorFlow、MXNet、PyTorch等都要早。Caffe需要進(jìn)行編譯安裝,支持命令行、Python和Matlab接口,單機(jī)多卡、多機(jī)多卡等都可以很方便使用。

Caffe的基本特性如下。

以C++/CUDA/Python代碼為主,速度快,性能高。

工廠設(shè)計(jì)模式,代碼結(jié)構(gòu)清晰,可讀性和可拓展性強(qiáng)。

支持命令行、Python和Matlab接口,使用方便。

CPUGPU之間切換方便,多GPU訓(xùn)練方便。

工具豐富,社區(qū)活躍。

同時(shí),Caffe的缺點(diǎn)也比較明顯,主要包括如下幾點(diǎn)。

源代碼修改門檻較高,需要實(shí)現(xiàn)正向/反向傳播。

不支持自動(dòng)求導(dǎo)。

不支持模型級(jí)并行,只支持?jǐn)?shù)據(jù)級(jí)并行。

不適合非圖像任務(wù)。

雖然Caffe已經(jīng)提供了Matlab和Python接口,但目前不支持R語(yǔ)言。caffeR為Caffe提供了一系列封裝功能,允許用戶在R語(yǔ)言上運(yùn)行Caffe,包括數(shù)據(jù)預(yù)處理和網(wǎng)絡(luò)設(shè)置,以及監(jiān)控和評(píng)估訓(xùn)練過程。該包還沒有CRAN版本,感興趣的讀者可以在GitHub找到caffeR包的安裝及使用的相關(guān)內(nèi)容。

04 PyTorch

PyTorch是Facebook團(tuán)隊(duì)于2017年1月發(fā)布的一個(gè)深度學(xué)習(xí)框架,雖然晚于TensorFlow、Keras等框架,但自發(fā)布之日起,其受到的關(guān)注度就在不斷上升,目前在GitHub上的熱度已經(jīng)超過Theano、Caffe、MXNet等框架。

PyTroch主要提供以下兩種核心功能:

支持GPU加速的張量計(jì)算;

方便優(yōu)化模型的自動(dòng)微分機(jī)制。

PyTorch的主要優(yōu)點(diǎn)如下。

簡(jiǎn)潔易懂:PyTorch的API設(shè)計(jì)相當(dāng)簡(jiǎn)潔一致,基本上是tensor、autograd、nn三級(jí)封裝,學(xué)習(xí)起來非常容易。

便于調(diào)試:PyTorch采用動(dòng)態(tài)圖,可以像普通Python代碼一樣進(jìn)行調(diào)試。不同于TensorFlow,PyTorch的報(bào)錯(cuò)說明通常很容易看懂。

強(qiáng)大高效:PyTorch提供了非常豐富的模型組件,可以快速實(shí)現(xiàn)想法。

05 Theano

Theano誕生于2008年,由蒙特利爾大學(xué)的LISA實(shí)驗(yàn)室開發(fā)并維護(hù),是一個(gè)高性能的符號(hào)計(jì)算及深度學(xué)習(xí)框架。它完全基于Python,專門用于對(duì)數(shù)學(xué)表達(dá)式的定義、求值與優(yōu)化。得益于對(duì)GU的透明使用,Theano尤其適用于包含高維度數(shù)組的數(shù)學(xué)表達(dá)式,并且計(jì)算效率比較高。

因Theano出現(xiàn)的時(shí)間較早,后來涌現(xiàn)出一批基于Theano的深度學(xué)習(xí)庫(kù),并完成了對(duì)Theano的上層封裝以及功能擴(kuò)展。在這些派生庫(kù)中,比較著名的就是本書要學(xué)習(xí)的Keras。Keras將一些基本的組件封裝成模塊,使得用戶在編寫、調(diào)試以及閱讀網(wǎng)絡(luò)代碼時(shí)更加清晰。

06 CNTK

CNTK(Microsoft Cognitive Toolkit)是微軟開源的深度學(xué)習(xí)工具包,它通過有向圖將神經(jīng)網(wǎng)絡(luò)描述為一系列計(jì)算步驟。在有向圖中,葉節(jié)點(diǎn)表示輸入值或網(wǎng)絡(luò)參數(shù),其他節(jié)點(diǎn)表示其輸入上的矩陣運(yùn)算。

CNTK允許用戶非常輕松地實(shí)現(xiàn)和組合流行的模型,包括前饋神經(jīng)網(wǎng)絡(luò)(DNN)、卷積神經(jīng)網(wǎng)絡(luò)(CNN)和循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN、LSTM)。與目前大部分框架一樣,CNTK實(shí)現(xiàn)了自動(dòng)求導(dǎo),利用隨機(jī)梯度下降方法進(jìn)行優(yōu)化。

CNTK的基本特性如下。

CNTK性能較好,按照其官方的說法,它比其他的開源框架性能都要好。

適合做語(yǔ)音任務(wù),CNTK本就是微軟語(yǔ)音團(tuán)隊(duì)開源的,自然更適合做語(yǔ)音任務(wù),便于在使用RNN等模型以及時(shí)空尺度時(shí)進(jìn)行卷積。

微軟開發(fā)的CNTK-R包提供了R與CNTK的API接口。

07 MXNet

MXNet框架允許混合符號(hào)和命令式編程,以最大限度地提高效率和生產(chǎn)力。MXNet的核心是一個(gè)動(dòng)態(tài)依賴調(diào)度程序,可以動(dòng)態(tài)地自動(dòng)并行化符號(hào)和命令操作。其圖形優(yōu)化層使符號(hào)執(zhí)行更快,內(nèi)存效率更高。

MXNet的基本特性如下。

靈活的編程模型:支持命令式和符號(hào)式編程模型。

多語(yǔ)言支持:支持C++、Python、R、Julia、JavaScript、Scala、Go、Perl等。事實(shí)上,它是唯一支持所有R函數(shù)的構(gòu)架。

本地分布式訓(xùn)練:支持在多CPU/GPU設(shè)備上的分布式訓(xùn)練,使其可充分利用云計(jì)算的規(guī)模優(yōu)勢(shì)。

性能優(yōu)化:使用一個(gè)優(yōu)化的C++后端引擎實(shí)現(xiàn)并行I/O和計(jì)算,無(wú)論使用哪種語(yǔ)言都能達(dá)到最佳性能。

云端友好:可直接與S3、HDFS和Azure兼容。

08 ONNX

ONNX(Open Neural Network eXchange,開放神經(jīng)網(wǎng)絡(luò)交換)項(xiàng)目由微軟、亞馬遜、Facebook和IBM等公司共同開發(fā),旨在尋找呈現(xiàn)開放格式的深度學(xué)習(xí)模型。ONNX簡(jiǎn)化了在人工智能不同工作方式之間傳遞模型的過程,具有各種深度學(xué)習(xí)框架的優(yōu)點(diǎn)。

ONNX的基本特性如下。

ONNX使模型能夠在一個(gè)框架中進(jìn)行訓(xùn)練并轉(zhuǎn)移到另一個(gè)框架中進(jìn)行預(yù)測(cè)。

ONNX模型目前在Caffe2、CNTK、MXNet和PyTorch中得到支持,并且還有與其他常見框架和庫(kù)的連接器。

onnx-r包提供了R與ONNX的API接口。

關(guān)于作者:謝佳標(biāo),資深AI技術(shù)專家和數(shù)據(jù)挖掘?qū)<?,擁有超過14年的技術(shù)研發(fā)和管理經(jīng)驗(yàn)。精通Python和Keras等深度學(xué)習(xí)框架,在數(shù)據(jù)挖掘和人工智能技術(shù)領(lǐng)域有非常深厚的積累。連續(xù)6年(2017~2022年)被微軟評(píng)為數(shù)據(jù)科學(xué)和AI方向MVP。資深R語(yǔ)言技術(shù)專家,“中國(guó)現(xiàn)場(chǎng)統(tǒng)計(jì)研究會(huì)大數(shù)據(jù)統(tǒng)計(jì)分會(huì)”第一屆理事。歷屆中國(guó)R語(yǔ)言和數(shù)據(jù)科學(xué)大會(huì)特邀演講嘉賓,受邀在國(guó)內(nèi)多所高校舉行以數(shù)據(jù)主題的公益講座。

審核編輯:符乾江

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    NPU在深度學(xué)習(xí)中的應(yīng)用

    設(shè)計(jì)的硬件加速器,它在深度學(xué)習(xí)中的應(yīng)用日益廣泛。 1. NPU的基本概念 NPU是一專門針對(duì)深度學(xué)習(xí)算法優(yōu)化的處理器,它與傳統(tǒng)的CPU和G
    的頭像 發(fā)表于 11-14 15:17 ?503次閱讀

    GPU深度學(xué)習(xí)應(yīng)用案例

    GPU在深度學(xué)習(xí)中的應(yīng)用廣泛且重要,以下是一些GPU深度學(xué)習(xí)應(yīng)用案例: 一、圖像識(shí)別 圖像識(shí)別是深度學(xué)習(xí)
    的頭像 發(fā)表于 10-27 11:13 ?381次閱讀

    AI大模型與深度學(xué)習(xí)的關(guān)系

    AI大模型與深度學(xué)習(xí)之間存在著密不可分的關(guān)系,它們互為促進(jìn),相輔相成。以下是對(duì)兩者關(guān)系的介紹: 一、深度學(xué)習(xí)是AI大模型的基礎(chǔ) 技術(shù)支撐 :
    的頭像 發(fā)表于 10-23 15:25 ?647次閱讀

    NVIDIA推出全新深度學(xué)習(xí)框架fVDB

    在 SIGGRAPH 上推出的全新深度學(xué)習(xí)框架可用于打造自動(dòng)駕駛汽車、氣候科學(xué)和智慧城市的 AI 就緒型虛擬表示。
    的頭像 發(fā)表于 08-01 14:31 ?590次閱讀

    PyTorch深度學(xué)習(xí)開發(fā)環(huán)境搭建指南

    PyTorch作為一流行的深度學(xué)習(xí)框架,其開發(fā)環(huán)境的搭建對(duì)于深度學(xué)習(xí)研究者和開發(fā)者來說至關(guān)重要
    的頭像 發(fā)表于 07-16 18:29 ?995次閱讀

    深度學(xué)習(xí)與nlp的區(qū)別在哪

    深度學(xué)習(xí)和自然語(yǔ)言處理(NLP)是計(jì)算機(jī)科學(xué)領(lǐng)域中兩個(gè)非常重要的研究方向。它們之間既有聯(lián)系,也有區(qū)別。本文將介紹深度學(xué)習(xí)與NLP的區(qū)別。
    的頭像 發(fā)表于 07-05 09:47 ?907次閱讀

    深度學(xué)習(xí)常用的Python庫(kù)

    深度學(xué)習(xí)作為人工智能的一個(gè)重要分支,通過模擬人類大腦中的神經(jīng)網(wǎng)絡(luò)來解決復(fù)雜問題。Python作為一流行的編程語(yǔ)言,憑借其簡(jiǎn)潔的語(yǔ)法和豐富的庫(kù)支持,成為了深度
    的頭像 發(fā)表于 07-03 16:04 ?624次閱讀

    TensorFlow與PyTorch深度學(xué)習(xí)框架的比較與選擇

    深度學(xué)習(xí)作為人工智能領(lǐng)域的一個(gè)重要分支,在過去十年中取得了顯著的進(jìn)展。在構(gòu)建和訓(xùn)練深度學(xué)習(xí)模型的過程中,深度
    的頭像 發(fā)表于 07-02 14:04 ?952次閱讀

    深度學(xué)習(xí)模型訓(xùn)練過程詳解

    詳細(xì)介紹深度學(xué)習(xí)模型訓(xùn)練的全過程,包括數(shù)據(jù)預(yù)處理、模型構(gòu)建、損失函數(shù)定義、優(yōu)化算法選擇、訓(xùn)練過程以及模型的評(píng)估與調(diào)優(yōu)。
    的頭像 發(fā)表于 07-01 16:13 ?1223次閱讀

    深度學(xué)習(xí)的模型優(yōu)化與調(diào)試方法

    深度學(xué)習(xí)模型在訓(xùn)練過程中,往往會(huì)遇到各種問題和挑戰(zhàn),如過擬合、欠擬合、梯度消失或爆炸等。因此,對(duì)深度學(xué)習(xí)模型進(jìn)行優(yōu)化與調(diào)試是確保其性能優(yōu)越的關(guān)鍵步驟。本文將從數(shù)據(jù)預(yù)處理、模型設(shè)計(jì)、超參
    的頭像 發(fā)表于 07-01 11:41 ?797次閱讀

    FPGA在深度學(xué)習(xí)應(yīng)用中或?qū)⑷〈鶪PU

    將 AI 框架模型映射到硬件架構(gòu)。 Larzul 的公司 Mipsology 希望通過 Zebra 來彌合這一差距。Zebra 是一軟件平臺(tái),開發(fā)者可以輕松地將深度學(xué)習(xí)代碼移植到 F
    發(fā)表于 03-21 15:19

    【技術(shù)科普】主流深度學(xué)習(xí)模型有哪些?AI開發(fā)工程師必備!

    深度學(xué)習(xí)在科學(xué)計(jì)算中獲得了廣泛的普及,其算法被廣泛用于解決復(fù)雜問題的行業(yè)。所有深度學(xué)習(xí)算法都使用不同類型的神經(jīng)網(wǎng)絡(luò)來執(zhí)行特定任務(wù)。 什么是深度
    的頭像 發(fā)表于 01-30 15:26 ?620次閱讀
    【技術(shù)科普】<b class='flag-5'>主流</b>的<b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b>模型有哪些?AI開發(fā)工程師必備!

    詳解深度學(xué)習(xí)、神經(jīng)網(wǎng)絡(luò)與卷積神經(jīng)網(wǎng)絡(luò)的應(yīng)用

    處理技術(shù)也可以通過深度學(xué)習(xí)來獲得更優(yōu)異的效果,比如去噪、超分辨率和跟蹤算法等。為了跟上時(shí)代的步伐,必須對(duì)深度學(xué)習(xí)與神經(jīng)網(wǎng)絡(luò)技術(shù)有所學(xué)習(xí)和研究
    的頭像 發(fā)表于 01-11 10:51 ?2022次閱讀
    詳解<b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b>、神經(jīng)網(wǎng)絡(luò)與卷積神經(jīng)網(wǎng)絡(luò)的應(yīng)用

    目前主流深度學(xué)習(xí)算法模型和應(yīng)用案例

    深度學(xué)習(xí)在科學(xué)計(jì)算中獲得了廣泛的普及,其算法被廣泛用于解決復(fù)雜問題的行業(yè)。所有深度學(xué)習(xí)算法都使用不同類型的神經(jīng)網(wǎng)絡(luò)來執(zhí)行特定任務(wù)。
    的頭像 發(fā)表于 01-03 10:28 ?1923次閱讀
    目前<b class='flag-5'>主流</b>的<b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b>算法模型和應(yīng)用案例

    PatchMatch MVS求解器中深度估計(jì)的挑戰(zhàn)性問題

    本文提出了一全新的學(xué)習(xí)型PatchMatch MVS框架,DS-PMNet,并嵌入了DeformSampler。這個(gè)框架能夠以端到端的方式學(xué)習(xí)
    的頭像 發(fā)表于 01-02 09:25 ?601次閱讀
    PatchMatch MVS求解器中<b class='flag-5'>深度</b>估計(jì)的挑戰(zhàn)性問題
    RM新时代网站-首页