<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個熱門的深度學(xué)習(xí)框架 | 附文檔

          共 6561字,需瀏覽 14分鐘

           ·

          2020-10-13 01:00

          點(diǎn)擊上方AI算法與圖像處理”,選擇加"星標(biāo)"或“置頂”

          重磅干貨,第一時間送達(dá)

          來源:深度學(xué)習(xí)與計算機(jī)視覺

          介紹
          我是一名程序員,喜歡從頭開始編寫代碼,這有助于我清楚地理解算法的技術(shù)細(xì)節(jié)。當(dāng)我們最初學(xué)習(xí)數(shù)據(jù)科學(xué)時,這種方法是特別有用的。
          從頭開始實(shí)現(xiàn)一個神經(jīng)網(wǎng)絡(luò),你會學(xué)到很多有意義的知識,但是在現(xiàn)實(shí)世界的數(shù)據(jù)集上從頭建立深度學(xué)習(xí)模型并不是一個很好的方法,因?yàn)槲覀兂3P枰獛滋旎驇字艿臅r間來建立模型。
          對于我們這些無法獲得足夠的計算資源的人來說,你來對了地方。
          幸運(yùn)的是我們現(xiàn)在擁有易于使用的開源深度學(xué)習(xí)框架,旨在簡化復(fù)雜的大規(guī)模深度學(xué)習(xí)模型的實(shí)施,使用這些框架,我們可以立即實(shí)現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)之類的復(fù)雜模型。
          在本文中,我們將介紹5個超級有用的深度學(xué)習(xí)框架,并介紹它們的優(yōu)點(diǎn)及其應(yīng)用。我們還將比較每個框架,以了解何時何地可以使用這些框架。
          在本文結(jié)尾處,我們還創(chuàng)建了一個非??岬男畔D,它描述了每個深度學(xué)習(xí)框架的價值。

          目錄

          1. 什么是深度學(xué)習(xí)框架?
          2. TensorFlow
          3. keras
          4. PyTorch
          5. Caffe
          6. Deeplearning4j
          7. 比較這些深度學(xué)習(xí)框架

          什么是深度學(xué)習(xí)框架?

          讓我們通過一個例子來理解這個概念
          以上圖像集合中,有多種類別——貓,駱駝,鹿,大象等。我們的任務(wù)是將這些圖像分類為相應(yīng)的類別。我們知道卷積神經(jīng)網(wǎng)絡(luò)(CNN)對于此類圖像分類任務(wù)是非常有效的。
          如果你從頭開始編寫卷積神經(jīng)網(wǎng)絡(luò)代碼,則需要幾天(甚至幾周)才能獲得有效的模型。我們不能等那么久!
          這就是深度學(xué)習(xí)框架真正的用武之地。
          “深度學(xué)習(xí)框架是接口,庫或工具,使我們能夠更輕松,快速地構(gòu)建深度學(xué)習(xí)模型,而無需深入了解基礎(chǔ)算法的細(xì)節(jié)。它們?yōu)槭褂靡唤M預(yù)先構(gòu)建和優(yōu)化的組件定義模型提供了一種清晰簡潔的方法?!?/span>
          無需編寫數(shù)百行代碼,我們可以使用合適的框架來幫助我們快速構(gòu)建這樣的模型。以下是一個良好的深度學(xué)習(xí)框架必須擁有的一些關(guān)鍵功能:
          1. 性能優(yōu)化
          2. 易于理解和編碼
          3. 良好的社區(qū)支持
          4. 并行處理以減少計算
          5. 自動計算梯度
          這些是我用來挑選深度學(xué)習(xí)框架的前5個標(biāo)準(zhǔn),首先讓我們詳細(xì)研究這些框架中的每一個。

          TensorFlow

          TensorFlow由Google Brain團(tuán)隊的研究人員和工程師開發(fā),它無疑是深度學(xué)習(xí)領(lǐng)域中最常用的軟件庫(盡管其他軟件庫正在迅速追趕)。
          我非常喜歡TensorFlow的兩件事——它是完全開源的,并具有出色的社區(qū)支持。TensorFlow為你遇到的大多數(shù)復(fù)雜深度學(xué)習(xí)模型(例如遞歸神經(jīng)網(wǎng)絡(luò)和卷積神經(jīng)網(wǎng)絡(luò))預(yù)先編寫了代碼。
          TensorFlow如此受歡迎的最大原因之一是它支持多種語言來創(chuàng)建深度學(xué)習(xí)模型,例如Python,C ++和R。它還具有豐富的文檔和指導(dǎo)性說明文件。
          TensorFlow包含許多組件,兩個最出色的組件是:
          TensorBoard:使用數(shù)據(jù)流圖幫助有效地可視化數(shù)據(jù)
          TensorFlow:對于快速部署新算法/實(shí)驗(yàn)非常有用
          TensorFlow的靈活架構(gòu)使我們能夠在一個或多個CPU(以及GPU)上部署深度學(xué)習(xí)模型。以下是TensorFlow的一些流行用例:
          1. 基于文本的應(yīng)用程序:語言檢測,文本摘要
          2. 圖像識別:圖像字幕,人臉識別,目標(biāo)檢測
          3. 聲音識別
          4. 時間序列分析
          5. 視頻分析
          如果你在我上面提到的其它應(yīng)用程序使用過TensorFlow,我希望能收到你的來信!在本文下面的評論部分中讓我知道,我們將進(jìn)行討論。
          安裝TensorFlow也是非常簡單的任務(wù)。
          對于CPU:
          pip?install?tensorflow
          對于啟用CUDA的GPU:
          pip?install?tensorflow-gpu
          從以下綜合教程中學(xué)習(xí)如何使用TensorFlow構(gòu)建神經(jīng)網(wǎng)絡(luò)模型:
          • 使用TensorFlow實(shí)施神經(jīng)網(wǎng)絡(luò)的簡介
            • https://www.analyticsvidhya.com/blog/2016/10/an-introduction-to-implementing-neural-networks-using-tensorflow
          • TensorFlow教程
            • https://www.tensorflow.org/tutorials

          keras

          如果你經(jīng)常使用Python,那么你會立即愛上Keras,這是你開始深度學(xué)習(xí)之旅的理想框架。
          Keras用Python編寫,可以在TensorFlow(以及CNTK和Theano)上運(yùn)行。使用TensorFlow接口可能有點(diǎn)難度,因?yàn)樗且粋€低級庫,新用戶可能很難理解某些實(shí)現(xiàn)。
          另一方面,Keras是高級API,其開發(fā)重點(diǎn)是實(shí)現(xiàn)快速實(shí)驗(yàn),因此,如果需要快速的結(jié)果,Keras將自動處理核心任務(wù)并生成輸出。Keras支持卷積神經(jīng)網(wǎng)絡(luò)和遞歸神經(jīng)網(wǎng)絡(luò),它可以在CPU和GPU上無縫運(yùn)行。
          深度學(xué)習(xí)初學(xué)者的普遍抱怨是,他們無法正確理解復(fù)雜的模型,如果你是此類用戶之一,那么Keras就是你的最佳選擇!它旨在最大程度地減少用戶操作,并使其真正易于理解。
          我們可以將Keras中的模型大致分為兩類:
          • 順序的:?模型的層以順序的方式定義意味著當(dāng)我們訓(xùn)練深度學(xué)習(xí)模型時,這些層是順序?qū)崿F(xiàn)的。這是一個順序模型的示例:
          from?keras.models?import?Sequential
          from?keras.layers?import?Dense

          model?=?Sequential()
          #?we?can?add?multiple?layers?to?the?model?using?.add()
          model.add(Dense(units=64,?activation='relu',?input_dim=100))
          model.add(Dense(units=10,?activation='softmax'))

          • Keras功能API:?通常用于定義復(fù)雜的模型,例如多輸出模型或具有共享層的模型。查看以下代碼,以實(shí)際的方式了解這一點(diǎn):
          from?keras.layers?import?Input,?Dense
          from?keras.models?import?Model

          inputs?=?Input(shape=(100,))?#?specify?the?input?shape
          x?=?Dense(64,?activation='relu')(inputs)
          predictions?=?Dense(10,?activation='softmax')(x)

          model?=?Model(inputs=inputs,?outputs=predictions)
          Keras具有多種架構(gòu),如下所述,用于解決各種各樣的問題,也包括我一直以來的最愛之一——圖像分類!
          1. VGG16
          2. VGG19
          3. InceptionV3
          4. Mobilenet等
          你可以參考Keras官方文檔以詳細(xì)了解該框架的工作原理。
          • Keras官方文檔:https://keras.io/
          你只需要一行代碼即可安裝Keras:
          pip?install?keras
          對Keras感興趣嗎?通過以下教程繼續(xù)你的學(xué)習(xí),在該教程中,你將了解如何使用Keras實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò):
          • 使用Keras優(yōu)化神經(jīng)網(wǎng)絡(luò):https://www.analyticsvidhya.com/blog/2016/10/tutorial-optimizing-neural-networks-using-keras-with-image-recognition-case-study/

          PyTorch

          隨著數(shù)據(jù)科學(xué)家和開發(fā)人員迅速接受Facebook的PyTorch的步伐,TensorFlow可能不會火的太久。
          我是PyTorch的擁護(hù)者,在我研究過的所有框架中,PyTorch是最靈活的。
          PyTorch是Torch深度學(xué)習(xí)框架的移植,可用于構(gòu)建深度神經(jīng)網(wǎng)絡(luò)和執(zhí)行張量計算。Torch是一個基于Lua的框架,而PyTorch在Python上運(yùn)行。
          PyTorch是提供Tensor計算的Python軟件包。張量是多維數(shù)組,就像numpy的ndarrays一樣,它們也可以在GPU上運(yùn)行。PyTorch使用動態(tài)計算圖,PyTorch的Autograd軟件包從張量構(gòu)建計算圖并自動計算梯度。
          PyTorch代替了具有特定功能的預(yù)定義圖形,它為我們提供了一個框架,使我們可以隨時構(gòu)建計算圖,甚至在運(yùn)行時進(jìn)行更改。對于我們不知道創(chuàng)建神經(jīng)網(wǎng)絡(luò)需要多少內(nèi)存的情況,這是很有用的。
          你可以使用PyTorch應(yīng)對各種深度學(xué)習(xí)挑戰(zhàn),包括:
          1. 圖像(檢測,分類等)
          2. 文字(NLP)
          3. 強(qiáng)化學(xué)習(xí)
          PyTorch的安裝步驟因你的操作系統(tǒng),要用于安裝PyTorch的軟件包,所使用的工具/語言,CUDA以及其他一些依賴項而異。
          在此處(https://PyTorch.org/) 檢查PyTorch的安裝步驟。準(zhǔn)備好框架后,請查看以下兩個資源,使用PyTorch構(gòu)建你的第一個神經(jīng)網(wǎng)絡(luò):
          • 了解如何使用PyTorch構(gòu)建快速而準(zhǔn)確的神經(jīng)網(wǎng)絡(luò)– 4個很棒的案例研究
            • https://www.analyticsvidhya.com/blog/2019/01/guide-PyTorch-neural-networks-case-studies
          • PyTorch教程
            • https://PyTorch.org/tutorials/beginner/deep_learning_60min_blitz.html

          Caffe

          Caffe是面向圖像處理領(lǐng)域的另一種流行的深度學(xué)習(xí)框架,它是由賈揚(yáng)清在加州大學(xué)伯克利分校攻讀博士學(xué)位期間開發(fā)的,并且是開源的!
          首先,需要注意的是– Caffe對遞歸網(wǎng)絡(luò)和語言建模的支持不如上述三個框架強(qiáng)大,但是使Caffe脫穎而出的是處理和從圖像中學(xué)習(xí)的速度,這很容易成為主要的USP。
          Caffe單個NVIDIA K40 GPU每天可處理六千萬張圖像,推理是1毫秒/圖,學(xué)習(xí)是4毫秒/圖。
          它為C,C ++,Python,MATLAB以及傳統(tǒng)命令行等接口提供了堅實(shí)的支持。
          Caffe Model-Zoo框架允許我們訪問預(yù)先訓(xùn)練的網(wǎng)絡(luò)、模型和權(quán)重,這些都可以用來解決深度學(xué)習(xí)問題。這些模型用于以下任務(wù):
          1. 簡單回歸
          2. 大規(guī)模視覺分類
          3. 連體網(wǎng)絡(luò)的圖像相似性
          4. 語音和機(jī)器人應(yīng)用
          你可以檢查Caffe的安裝和文檔以獲取更多詳細(xì)信息。
          • Caffe安裝:http://Caffe.berkeleyvision.org/installation.html
          • Caffe文檔:http://Caffe.berkeleyvision.org/

          deeplearning4j

          這是Java程序員理想的深度學(xué)習(xí)框架!Deeplearning4j是用Java實(shí)現(xiàn)的,因此與Python相比,效率更高。它使用名為ND4J的張量庫,該庫提供了使用n維數(shù)組(也稱為張量)的功能。該框架還支持CPU和GPU。
          Deeplearning4j將加載數(shù)據(jù)和訓(xùn)練算法的任務(wù)視為單獨(dú)的過程,這種功能上的分離提供了很大的靈活性。在深度學(xué)習(xí)中,有誰會不喜歡呢?
          Deeplearning4j也適用于不同的數(shù)據(jù)類型:
          1. 圖片
          2. CSV
          3. 純文本等
          你可以使用Deeplearning4j構(gòu)建的深度學(xué)習(xí)模型有:
          • 卷積神經(jīng)網(wǎng)絡(luò)(CNN)
          • 遞歸神經(jīng)網(wǎng)絡(luò)(RNN)
          • 長短期記憶人工神經(jīng)網(wǎng)絡(luò)(LSTM)和許多其他體系結(jié)構(gòu)。
          閱讀Deeplearning4j 的安裝步驟和文檔,以開始使用此框架。
          • 安裝步驟:https://deeplearning4j.org/docs/latest/deeplearning4j-config-gpu-cpu
          • 文檔:https://deeplearning4j.org/docs/latest/deeplearning4j-quickstart

          比較這5種深度學(xué)習(xí)框架

          我們已經(jīng)介紹了五個最受歡迎的深度學(xué)習(xí)框架。每個數(shù)據(jù)科學(xué)家都有自己獨(dú)特的功需求與愛好,所以選擇的框架也各不相同。
          你確定了要使用哪一個嗎?或者,你正計劃切換到全新的框架?無論如何,重要的是要了解每個框架的優(yōu)點(diǎn)和局限性。
          有些框架與圖像數(shù)據(jù)配合使用非常好,但是無法通過文本數(shù)據(jù)進(jìn)行解析,而其他框架在圖像和文本數(shù)據(jù)上均表現(xiàn)良好,但其內(nèi)部工作可能難以理解。
          在本節(jié)中,我們將使用以下標(biāo)準(zhǔn)比較五個深度學(xué)習(xí)框架:
          1. 社區(qū)支持
          2. 開發(fā)語言
          3. 接口
          4. 支持的預(yù)訓(xùn)練模型
          下表比較了這些框架:
          深度學(xué)習(xí)框架
          發(fā)行年份
          用哪種語言寫的
          支持CUDA嗎
          它有預(yù)訓(xùn)練的模型嗎
          TensorFlow
          2015年
          C++, Python
          支持
          keras
          2015年
          Python
          支持
          PyTorch
          2016年
          Python, C
          支持
          Caffe
          2013年
          C++
          支持
          Deeplearning4j
          2014年
          C++, Java
          支持
          這是一個非常方便的表格!
          這些框架都是開源的,支持CUDA,并且具有預(yù)先訓(xùn)練的模型來幫助你入門。但是,什么是正確的起點(diǎn),應(yīng)該選擇哪個框架來構(gòu)建(初始)深度學(xué)習(xí)模型?讓我們討論一下!

          TensorFlow

          我們將從TensorFlow開始,TensorFlow適用于圖像以及基于序列的數(shù)據(jù)。如果你是深度學(xué)習(xí)的初學(xué)者,或者對線性代數(shù)和微積分等數(shù)學(xué)概念沒有深入的了解,那么TensorFlow的陡峭學(xué)習(xí)曲線可能會令人生畏。
          對于剛起步的人們來說,這方面可能很復(fù)雜。我的建議是繼續(xù)練習(xí),繼續(xù)探索社區(qū),并繼續(xù)閱讀文章以掌握TensorFlow的精髓。一旦你對框架有了很好的了解,實(shí)施深度學(xué)習(xí)模型對你來說將非常容易。

          keras

          Keras是一個非常堅實(shí)的框架來開始你的深度學(xué)習(xí)之旅。如果你熟悉Python并且不進(jìn)行任何高級研究或開發(fā)特定種類的神經(jīng)網(wǎng)絡(luò),那么Keras是很適合的。
          重點(diǎn)更多地放在實(shí)現(xiàn)結(jié)果上,而不是被模型的復(fù)雜性所困擾,因此,如果你得到了與圖像分類或序列模型相關(guān)的項目,請從Keras開始,你將能夠非??焖俚孬@得工作模型。
          Keras也集成在TensorFlow中,因此你也可以使用tf.keras構(gòu)建模型。

          PyTorch

          與TensorFlow相比,PyTorch更加直觀。這兩個框架的快速項目將使這一點(diǎn)變得很清楚。
          即使你沒有扎實(shí)的數(shù)學(xué)知識或純粹的機(jī)器學(xué)習(xí)背景,也可以理解PyTorch模型。你可以在模型進(jìn)行時定義或操作圖形,這使PyTorch更加直觀。
          PyTorch沒有像TensorBoard這樣的可視化工具,但是你始終可以使用matplotlib這樣的庫。我不會說PyTorch 比TensorFlow 更好,但是這兩個深度學(xué)習(xí)框架都非常有用。

          Caffe

          當(dāng)我們在圖像數(shù)據(jù)上構(gòu)建深度學(xué)習(xí)模型時,Caffe效果很好,但是,在遞歸神經(jīng)網(wǎng)絡(luò)和語言模型方面,Caffe落后于我們討論的其他框架。Caffe的主要優(yōu)勢在于,即使你沒有強(qiáng)大的機(jī)器學(xué)習(xí)或微積分知識,也可以構(gòu)建深度學(xué)習(xí)模型。
          Caffe主要用于為手機(jī)和其他受計算限制的平臺構(gòu)建和部署深度學(xué)習(xí)模型。

          Deeplearning4j

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

          尾注和插圖說明

          請記住,這些框架本質(zhì)上只是幫助我們達(dá)到最終目標(biāo)的工具,明智地選擇它們可以減少大量的精力和時間。
          如所承諾的,以下是信息圖,其中詳細(xì)介紹了我們涵蓋的每個深度學(xué)習(xí)框架。你可以下載保存并在下次構(gòu)建深度學(xué)習(xí)模型時使用它!
          參考鏈接:https://www.analyticsvidhya.com/blog/2019/03/deep-learning-frameworks-comparison/


          下載1:OpenCV黑魔法


          AI算法與圖像處理」公眾號后臺回復(fù):OpenCV黑魔法,即可下載小編精心編寫整理的計算機(jī)視覺趣味實(shí)戰(zhàn)教程



          下載2 CVPR2020

          AI算法與圖像處公眾號后臺回復(fù):CVPR2020,即可下載1467篇CVPR?2020論文
          個人微信(如果沒有備注不拉群!
          請注明:地區(qū)+學(xué)校/企業(yè)+研究方向+昵稱


          覺得有趣就點(diǎn)亮在看吧


          瀏覽 75
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <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>
                  18禁黄无码免费网站 | 天堂一区二区三区18 | 激情开心成人网 | 天天操人人色 | 大相焦依人在钱 12 |