<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          干貨 | 5個常用的深度學習框架

          共 4979字,需瀏覽 10分鐘

           ·

          2021-11-27 14:08

          點擊上方小白學視覺”,選擇加"星標"或“置頂”

          重磅干貨,第一時間送達

          ?對于學習數(shù)據(jù)科學的同學來說,從頭開始實現(xiàn)神經(jīng)網(wǎng)絡(luò),會讓你理解很多有趣的東西。但是,我并不認為在真實數(shù)據(jù)集上構(gòu)建深度學習模型是個明智的做法,除非你有數(shù)天或數(shù)周的時間來等待模型的構(gòu)建。那么對于絕大部分無法獲得無限資源的人來說,使用易于使用的開源深度學習框架,我們可以立即實現(xiàn)如卷積神經(jīng)網(wǎng)絡(luò)這樣的復雜模型。


          在本文中,我將介紹5個超級有用的深度學習框架,同時比較每個框架,以了解我們何時何地可以使用哪個框架。

          ?

          目錄

          一、什么是深度學習框架

          二、TensorFlow

          三、Keras

          四、PyTorch

          五、Caffe

          六、DeepLearning4j

          七、比較這些深度學習框架

          ?

          一、什么是深度學習框架

          讓我們用一個例子來理解這個概念??紤]下面的圖像集合:

          此圖像中有各種類別,貓、駱駝、鹿、大象等。我們的任務(wù)是將這些圖像分類到相應(yīng)的類(或類別)中。Google搜索告訴我們,卷積神經(jīng)網(wǎng)絡(luò)(CNN)對于此類圖像分類任務(wù)非常有效。所以我們需要去實現(xiàn)這個模型,但是如果你開始從頭開始編寫CNN,那么獲得工作模型將是幾天后(甚至是幾周),而這就是深度學習框架真正改變了這尷尬的局面。

          無須寫上百行代碼,我們僅僅需要使用一個適合的框架去幫助我們快速建立這樣的模型。以下是良好深度學習框架的一些主要特征:

          1.???針對性能進行了優(yōu)化

          2.???易于理解和編碼

          3.???良好的社區(qū)支持

          4.???并行化進程以減少計算

          5.???自動計算漸變

          ?

          二、TensorFlow

          TensorFlow由GoogleBrain團隊的研究人員和工程師開發(fā)。它是深度學習領(lǐng)域中最常用的軟件庫(盡管其他人正在迅速趕上)。

          TensorFlow如此受歡迎的最大原因是,它支持多種語言來創(chuàng)建深度學習模型。比如Python,C++和R語言,它有適當?shù)奈臋n的演練指導。制作TensorFlow有很多組件,其中比較突出的兩個是:

          1.???TensorBoard:使用數(shù)據(jù)流圖幫助實現(xiàn)有效的數(shù)據(jù)可視化

          2.???TensorFlow:用于快速部署新算法/實驗


          TensorFlow的靈活架構(gòu)使我們能夠在一個或者多個CPU(以及GPU)上部署我們的深度學習模型。以下是TensorFlow的幾個常見用例:

          1.???基于文本的應(yīng)用程序:語言檢測、文本摘要

          2.???圖像識別:圖像字幕、人臉識別、物體檢測

          3.???聲音識別

          4.???時間序列分析

          5.???視頻分析

          安裝TensorFlow也是一項非常簡單的任務(wù):

          ?????? 僅適用于CPU:

          ?????? 對于支持CUDA的GPU卡:

          ???????? 從以下綜合教程中學習如何使用TensorFlow構(gòu)建神經(jīng)網(wǎng)絡(luò)模型

          • An Introduction to Implementing NeuralNetworks using TensorFlow

          • TensorFlow tutorials

          ?

          三、Keras

          對于Python愛好者來說,Keras是你開始深度學習之旅的完美框架。Keras是用Python編寫的,可以運行在TensorFlow(以及CNTK和Theano)之上。TensorFlow接口可能有點挑戰(zhàn)性,因為它是一個低級庫,新用戶可能會很難理解某些實現(xiàn)。另一方面,Keras是一個高級API,開發(fā)的重點是實現(xiàn)快速實驗。因此,如果想要快速結(jié)果,Keras將自動處理核心任務(wù)并生成輸出。Keras支持卷積神經(jīng)網(wǎng)絡(luò)和遞歸神經(jīng)網(wǎng)絡(luò)。它可以在CPU和GPU上無縫運行。同時,Keras有助于深度學習初學者正確理解復雜的模型,它旨在最大限度地減少用戶操作,并使模型非常容易理解。


          我們可以將Keras的模型大致分為兩類:

          1.順序:模型的各層以順序方式定義,這意味著當我們訓練深度學習模型時,這些層是按順序?qū)崿F(xiàn)的。以下是順序模型的示例:

          2.Keras功能API:通常用于定義復雜模型,例如多輸出模型或具有共享層的模型,查看以下代碼以實際方式理解:


          Keras有多種架構(gòu),如下所述,用于解決各種各樣的問題

          1.???VGG16

          2.???VGG19

          3.???InceptionV3

          4.???Mobilenet和其他更多

          你可以參考官方Keras文檔,以詳細了解框架的工作原理:https://keras.io/

          僅僅使用一行代碼就能夠安裝Keras:

          想要更進一步是如何使用Keras實現(xiàn)神經(jīng)網(wǎng)絡(luò)的可以查看:

          • OptimizingNeural Networks using Keras

          ?

          四、PyTorch

          PyTorch是我所研究的所有框架中最靈活的,它是Torch深度學習框架的一個端口,可用于構(gòu)建深度神經(jīng)網(wǎng)絡(luò)和執(zhí)行Tensor計算。Torch是一個基于Lua的框架,而PyTorch是在Python上運行的,使用動態(tài)計算圖,它的Autogard軟件包從tensors中構(gòu)建計算圖并自動計算梯度。Tensors是多維數(shù)組,就像numpy的ndarrays一樣,也可以在GPU上運行。


          PyTorch不是使用具有特定功能的預定義圖形,而是為我們提供了一個構(gòu)建計算圖形的框架,甚至可以在運行時更改它們。這對于我們不知道在創(chuàng)建神經(jīng)網(wǎng)絡(luò)時應(yīng)該需要多少內(nèi)存的情況很有用。


          你可以使用PyTorch處理各種深度學習挑戰(zhàn),包括:

          1.???圖像(檢測、分類等)

          2.???文本(NLP)

          3.???強化學習


          關(guān)于PyTorch的安裝步驟和利用PyTorch構(gòu)建你的第一個神經(jīng)網(wǎng)絡(luò),可以參考以下文檔:

          • Learn How to Build Quick & AccruateNeural Networks using PyTorch-4 Awesome Case Studies

          • PyTorch tutorials

          ?

          五、Caffe

          Caffe是面向圖像處理領(lǐng)域的另一種流行的深度學習框架。作者是賈揚清,加州大學伯克利的博士,現(xiàn)就職于阿里巴巴,擔任技術(shù)副總裁崗位,領(lǐng)導大數(shù)據(jù)計算平臺的研發(fā)工作。需要注意的是,Caffe對循環(huán)網(wǎng)絡(luò)和語言建模的支持不如上述三個框架。但是,Caffe脫穎而出的是處理和學習圖像的速度。這很容易成為主要的USP。(USP指的是UniqueSelling Proposition,又稱創(chuàng)意理論,其特點是必須向受眾陳述產(chǎn)品的特點,同時這個特點必須是獨特的、必須能夠引起銷售)


          Caffe為C、C++、Python、Matlab等接口以及傳統(tǒng)的命令行提供了堅實的支持。Caffe Model Zoo(大量的在大數(shù)據(jù)集上預訓練的可供下載的模型)框架允許我們訪問可用于解決深度學習問題的預訓練網(wǎng)絡(luò)、模型和權(quán)重。這些模型適用于以下任務(wù):

          1.???簡單回歸

          2.???大規(guī)模的視覺分類

          3.???用于圖像相似性的暹羅網(wǎng)絡(luò)(Siamese Networks)

          4.???語音和機器人應(yīng)用


          你可以查看Caffe的安裝和文檔以獲取更多詳細信息。

          ?

          六、DeepLearning4j

          對于Java程序員,這是理想的深度學習框架。DeepLearning4j在java中實現(xiàn),因此與Python相比更高效,它使用稱為ND4J的張量庫,提供了處理n維數(shù)組的能力。這個框架還支持GPU和CPU。


          DeepLearning4j將加載數(shù)據(jù)和訓練算法的任務(wù)視為單獨的過程,這種功能分離提供了很大的靈活性。它同時也適用于不同的數(shù)據(jù)類型:

          1.???圖片

          2.???CSV

          3.???純文本等


          你可以使用DeepLearning4j構(gòu)建的深度學習模型是:

          1.???卷積神經(jīng)網(wǎng)絡(luò)(CNN)

          2.???遞歸神經(jīng)網(wǎng)絡(luò)(RNN)

          3.???長短記憶(LSTM)和許多其他架構(gòu)


          你可以查看DeepLearning4j的安裝和文檔以獲取更多詳細信息。

          ?

          七、五個深度學習框架的對比

          我們已經(jīng)介紹了五個最流行的深度學習框架。每個都有它自己獨特的功能集,有些框架可以很好地處理圖像數(shù)據(jù),但無法解析文本數(shù)據(jù)。其他框架在圖像和文本數(shù)據(jù)方面表現(xiàn)良好,但其內(nèi)部工作可能難以理解。下面我們將使用以下標準比較我們的五個深度學習框架:

          1.???社區(qū)支持

          2.???它們用到的語言

          3.???接口

          4.???支持預訓練模型


          下面這個表格是這些框架的對比:

          所有這些框架都是開源的,支持CUDA并且有預訓練模型來幫助您入門。但是,什么應(yīng)該是正確的起點,你應(yīng)該選擇哪個框架來構(gòu)建你的(初始)深度學習模型?


          1.???TensorFlow

          TensorFlow適用于圖像和基于序列的數(shù)據(jù)。如果您是深度學習的初學者,或者對線性代數(shù)和微積分等數(shù)學概念缺乏扎實的理解,那么TensorFlow的陡峭學習曲線可能會讓人望而生畏。對于剛剛起步的人來說,這方面可能很復雜。我的建議是繼續(xù)練習,繼續(xù)探索社區(qū)。一旦您對框架有了很好的理解,實現(xiàn)深度學習模型對您來說將非常容易。


          2.???Keras

          Keras是一個非常可靠的框架,可以開始您的深度學習之旅。如果您熟悉Python并且沒有進行一些高級研究或開發(fā)一些特殊類型的神經(jīng)網(wǎng)絡(luò),那么Keras就適合您。它更多的是讓你取得成果,而不是陷入模型錯綜復雜的困境。因此,如果您獲得與圖像分類或序列模型相關(guān)的項目,請從Keras開始,因為你可以非??焖俚孬@得工作模型。


          Keras也集成在TensorFlow中,因此您也可以使用tf.keras構(gòu)建模型。


          3.???PyTorch

          與TensorFlow相比,PyTorch更直觀。一個包含這兩個框架的快速項目將使這一點非常清晰。即使你沒有扎實的數(shù)學或純機器學習背景,你也可以理解PyTorch模型。隨著模型的進行,您可以定義或操作圖形,這使得PyTorch更加直觀。PyTorch沒有像TensorBoard這樣的可視化工具,但你可以隨時使用像matplotlib這樣的庫。


          4.???Caffe

          當我們在圖像數(shù)據(jù)上構(gòu)建深度學習模型時,Caffe非常有效。但是當涉及到遞歸神經(jīng)網(wǎng)絡(luò)和語言模型時,Caffe落后于我們討論過的其他框架。Caffe的主要優(yōu)勢在于,即使您沒有強大的機器學習或微積分知識,您也可以構(gòu)建深度學習模型。Caffe主要用于構(gòu)建和部署用于移動電話和其他計算受限平臺的深度學習模型。


          5.???DeepLearning4j

          就像我之前提到的,Deeplearning4j是Java程序員的天堂。它為不同的神經(jīng)網(wǎng)絡(luò)提供了大量支持,如CNN,RNN和LSTM。它可以在不犧牲速度的情況下處理大量數(shù)據(jù)。

          ?

          八、結(jié)束

          請記住,這些框架本質(zhì)上只是幫助我們實現(xiàn)最終目標的工具。明智地選擇它們可以減少大量的精力和時間。下圖是詳細介紹我們所涵蓋的每個深度學習框架的信息圖。你可以選擇下載,打印并在下次構(gòu)建深度學習模型時使用它!


          下載1:OpenCV-Contrib擴展模塊中文版教程
          在「小白學視覺」公眾號后臺回復:擴展模塊中文教程即可下載全網(wǎng)第一份OpenCV擴展模塊教程中文版,涵蓋擴展模塊安裝、SFM算法、立體視覺、目標跟蹤、生物視覺、超分辨率處理等二十多章內(nèi)容。

          下載2:Python視覺實戰(zhàn)項目52講
          小白學視覺公眾號后臺回復:Python視覺實戰(zhàn)項目即可下載包括圖像分割、口罩檢測、車道線檢測、車輛計數(shù)、添加眼線、車牌識別、字符識別、情緒檢測、文本內(nèi)容提取、面部識別等31個視覺實戰(zhàn)項目,助力快速學校計算機視覺。

          下載3:OpenCV實戰(zhàn)項目20講
          小白學視覺公眾號后臺回復:OpenCV實戰(zhàn)項目20講,即可下載含有20個基于OpenCV實現(xiàn)20個實戰(zhàn)項目,實現(xiàn)OpenCV學習進階。

          交流群


          歡迎加入公眾號讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器、自動駕駛、計算攝影、檢測、分割、識別、醫(yī)學影像、GAN、算法競賽等微信群(以后會逐漸細分),請掃描下面微信號加群,備注:”昵稱+學校/公司+研究方向“,例如:”張三?+?上海交大?+?視覺SLAM“。請按照格式備注,否則不予通過。添加成功后會根據(jù)研究方向邀請進入相關(guān)微信群。請勿在群內(nèi)發(fā)送廣告,否則會請出群,謝謝理解~


          瀏覽 71
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  女人高潮免费视频 | 日韩操逼一级片 | 在线观看国产精品自拍 | 成人超碰在线 | 91香蕉在线观看 |