中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

數(shù)據(jù)科學(xué)家必知的五大深度學(xué)習(xí)框架。ǜ讲鍒D)

2019-04-26    來(lái)源:raincent

容器云強(qiáng)勢(shì)上線!快速搭建集群,上萬(wàn)Linux鏡像隨意使用

概述

從出道起,我就一直是一名程序員。我喜歡從頭開(kāi)始編寫(xiě)代碼,這有助于我清楚地理解主題(或技巧)。當(dāng)我們剛開(kāi)始學(xué)習(xí)數(shù)據(jù)科學(xué)時(shí),這種方法尤為有用。

嘗試從無(wú)到有地實(shí)現(xiàn)一個(gè)神經(jīng)網(wǎng)絡(luò),你將會(huì)明白很多有趣的事情。但是當(dāng)需要為現(xiàn)實(shí)世界的數(shù)據(jù)集構(gòu)建深度學(xué)習(xí)模型時(shí),這還是一個(gè)不錯(cuò)的主意嗎?如果你需要幾天或幾周的時(shí)間來(lái)建立起模型,這是完全不可能的。

對(duì)于那些無(wú)法訪問(wèn)無(wú)限計(jì)算資源的人來(lái)說(shuō),你們已經(jīng)來(lái)到了正確的地方。

 

 

值得慶幸的是,我們現(xiàn)在已經(jīng)有了易于使用的開(kāi)源深度學(xué)習(xí)框架,旨在簡(jiǎn)化復(fù)雜和大規(guī)模深度學(xué)習(xí)模型的實(shí)現(xiàn)。使用這些神奇的框架,我們可以實(shí)現(xiàn)諸如卷積神經(jīng)網(wǎng)絡(luò)這樣復(fù)雜的模型。

在本文中,將介紹5種非常有用的深度學(xué)習(xí)框架、它們的優(yōu)點(diǎn)以及應(yīng)用。我們將對(duì)每個(gè)框架進(jìn)行比較,以了解何時(shí)何地可以使用它們。

我們還創(chuàng)建了一個(gè)非?岬尼槍(duì)每個(gè)深度學(xué)習(xí)框架的信息圖表,附在在文章的末尾,為每個(gè)數(shù)據(jù)科學(xué)家所必備。

目錄

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

二、TensorFlow

三、Keras

四、PyTorch

五、Caffe

六、Deeplearning4j

七、五個(gè)深度學(xué)習(xí)框架之間的對(duì)比

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

讓我們用一個(gè)例子來(lái)理解這個(gè)概念,來(lái)看以下圖像集合:

 

 

在這個(gè)圖像中有不同的分類(lèi):貓,駱駝,鹿,大象等。我們的任務(wù)是將這些圖像歸到相應(yīng)的類(lèi)(或類(lèi)別)中。用Google搜索一下就能知道:卷積神經(jīng)網(wǎng)絡(luò)(CNNs)對(duì)于這類(lèi)圖像分類(lèi)任務(wù)十分有效。

我們要做的工作就是實(shí)現(xiàn)這個(gè)模型,對(duì)嗎?如果從頭開(kāi)始編寫(xiě)一個(gè)卷積神經(jīng)網(wǎng)絡(luò),則需要幾天(甚至幾周)才能得到一個(gè)有效的模型,我們卻沒(méi)法等這么長(zhǎng)的時(shí)間!

這正是深度學(xué)習(xí)框架真正改變了局面的地方。

 

 

深度學(xué)習(xí)框架是一種界面、庫(kù)或工具,它使我們?cè)跓o(wú)需深入了解底層算法的細(xì)節(jié)的情況下,能夠更容易、更快速地構(gòu)建深度學(xué)習(xí)模型。深度學(xué)習(xí)框架利用預(yù)先構(gòu)建和優(yōu)化好的組件集合定義模型,為模型的實(shí)現(xiàn)提供了一種清晰而簡(jiǎn)潔的方法。

利用恰當(dāng)?shù)目蚣軄?lái)快速構(gòu)建模型,而無(wú)需編寫(xiě)數(shù)百行代碼,一個(gè)良好的深度學(xué)習(xí)框架具備以下關(guān)鍵特征:

♦ 優(yōu)化的性能

♦ 易于理解和編碼

♦ 良好的社區(qū)支持

♦ 并行化的進(jìn)程,以減少計(jì)算

♦ 自動(dòng)計(jì)算梯度

這五點(diǎn)也是我用來(lái)挑選五大頂級(jí)深度學(xué)習(xí)框架的標(biāo)準(zhǔn)。下面讓我們?cè)敿?xì)研究一下它們。

二、TensorFlow

 

 

TensorFlow是由谷歌大腦團(tuán)隊(duì)的研究人員和工程師開(kāi)發(fā)的,它是深度學(xué)習(xí)領(lǐng)域中最常用的軟件庫(kù)(盡管其他軟件正在迅速崛起)。

 

 

我喜歡TensorFlow的原因有兩點(diǎn):它完全是開(kāi)源的,并且有出色的社區(qū)支持。TensorFlow為大多數(shù)復(fù)雜的深度學(xué)習(xí)模型預(yù)先編寫(xiě)好了代碼,比如遞歸神經(jīng)網(wǎng)絡(luò)和卷積神經(jīng)網(wǎng)絡(luò)。

TensorFlow如此流行的最大原因之一是支持多種語(yǔ)言來(lái)創(chuàng)建深度學(xué)習(xí)模型,比如Python、C和R,并且有不錯(cuò)的文檔和指南。

TensorFlow有許多組件,其中最為突出的是:

♦ Tensorboard:幫助使用數(shù)據(jù)流圖進(jìn)行有效的數(shù)據(jù)可視化

♦ TensorFlow:用于快速部署新算法/試驗(yàn)

TensorFlow的靈活架構(gòu)使我們能夠在一個(gè)或多個(gè)CPU(以及GPU)上部署深度學(xué)習(xí)模型。下面是一些典型的TensorFlow用例:

♦ 基于文本的應(yīng)用:語(yǔ)言檢測(cè)、文本摘要

♦ 圖像識(shí)別:圖像字幕、人臉識(shí)別、目標(biāo)檢測(cè)

♦ 聲音識(shí)別

♦ 時(shí)間序列分析

♦ 視頻分析

用例遠(yuǎn)遠(yuǎn)不止這些,如果你知道TensorFlow還有以上所述之外的其他應(yīng)用,我很樂(lè)意知道!可以在本文的評(píng)論部分告訴我,我們?cè)僮鲇懻摗?/p>

安裝TensorFlow也是一個(gè)非常簡(jiǎn)單的任務(wù)。

對(duì)于CPU:

♦ pip install tensorflow

對(duì)于啟用CUDA的GPU卡:

♦ pip install tensorflow-gpu

通過(guò)以下綜合教程了解如何使用TensorFlow建立神經(jīng)網(wǎng)絡(luò)模型:

♦ 利用TensorFlow實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)簡(jiǎn)介

https://www.analyticsvidhya.com/blog/2016/10/an-introduction-to-implementing-neural-networks-using-tensorflow/?utm_source=blog&utm_medium=comparison-deep-learning-framework

TensorFlow教程

https://www.tensorflow.org/tutorials

三、Keras

 

 

你習(xí)慣使用Python嗎?如果是,那么可以立即連接到Keras。這是一個(gè)開(kāi)啟你的深度學(xué)習(xí)之旅的完美的框架。

Keras用Python編寫(xiě),可以在TensorFlow(以及CNTK和Theano)之上運(yùn)行。TensorFlow的接口具備挑戰(zhàn)性,因?yàn)樗且粋(gè)低級(jí)庫(kù),新用戶可能會(huì)很難理解某些實(shí)現(xiàn)。

而Keras是一個(gè)高層的API,它為快速實(shí)驗(yàn)而開(kāi)發(fā)。因此,如果希望獲得快速結(jié)果,Keras會(huì)自動(dòng)處理核心任務(wù)并生成輸出。Keras支持卷積神經(jīng)網(wǎng)絡(luò)和遞歸神經(jīng)網(wǎng)絡(luò),可以在CPU和GPU上無(wú)縫運(yùn)行。

深度學(xué)習(xí)的初學(xué)者經(jīng)常會(huì)抱怨:無(wú)法正確理解復(fù)雜的模型。如果你是這樣的用戶,Keras便是你的正確選擇!它的目標(biāo)是最小化用戶操作,并使其模型真正容易理解。

可以將Keras中的模型大致分為兩類(lèi):

1. 序列化

模型的層是按順序定義的。這意味著當(dāng)我們訓(xùn)練深度學(xué)習(xí)模型時(shí),這些層次是按順序?qū)崿F(xiàn)的。下面是一個(gè)順序模型的示例:

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'))

2. Keras 函數(shù)API

用于定義復(fù)雜模型,例如多輸出模型或具有共享層的模型。請(qǐng)查看下面的代碼來(lái)理解這一點(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),如下所述,用于解決各種各樣的問(wèn)題,其中包括我的最?lèi)?ài)之一:圖像分類(lèi)!

VGG 16
VGG 19
InceptionV 3
Mobilenet及更多

可以參考官方的Keras文檔來(lái)詳細(xì)了解框架是如何工作的。

Keras官方中文文檔

https://keras.io/zh/

僅需一行代碼即可安裝Keras:

pip install keras

對(duì)Keras感興趣?可以繼續(xù)學(xué)習(xí)以下教程,了解如何使用Keras實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò):

♦ 基于Keras的神經(jīng)網(wǎng)絡(luò)優(yōu)化

https://www.analyticsvidhya.com/blog/2016/10/tutorial-optimizing-neural-networks-using-keras-with-image-recognition-case-study/?utm_source=blog&utm_medium=comparison-deep-learning-framework

四、PyTorch

 

 

還記得我們說(shuō)過(guò)TensorFlow是目前最常用的深度學(xué)習(xí)框架嗎?但是如果考慮到數(shù)據(jù)科學(xué)家和開(kāi)發(fā)者們擁抱Facebook的PyTorch的速度,那它可能很快就要落伍了。

我是PyTorch的擁護(hù)者,在我所研究過(guò)的框架中,PyTorch最富靈活性。

PyTorch是Torch深度學(xué)習(xí)框架的一個(gè)接口,可用于建立深度神經(jīng)網(wǎng)絡(luò)和執(zhí)行張量計(jì)算。Torch是一個(gè)基于Lua的框架,而PyTorch則運(yùn)行在Python上。

PyTorch是一個(gè)Python包,它提供張量計(jì)算。張量是多維數(shù)組,就像numpy的ndarray一樣,它也可以在GPU上運(yùn)行。PyTorch使用動(dòng)態(tài)計(jì)算圖,PyTorch的Autograd軟件包從張量生成計(jì)算圖,并自動(dòng)計(jì)算梯度。

與特定功能的預(yù)定義的圖表不同,PyTorch提供了一個(gè)框架,用于在運(yùn)行時(shí)構(gòu)建計(jì)算圖形,甚至在運(yùn)行時(shí)也可以對(duì)這些圖形進(jìn)行更改。當(dāng)不知道創(chuàng)建神經(jīng)網(wǎng)絡(luò)需要多少內(nèi)存的情況下,這個(gè)功能便很有價(jià)值。

可以使用PyTorch處理各種來(lái)自深度學(xué)習(xí)的挑戰(zhàn),包括:

♦ 影像(檢測(cè)、分類(lèi)等)

♦ 文本(NLP)

♦ 增強(qiáng)學(xué)習(xí)

想知道如何在機(jī)器上安裝PyTorch,請(qǐng)稍等片刻。安裝步驟取決于操作系統(tǒng)、需要安裝的PyTorch包、正在使用的工具/語(yǔ)言、CUDA等其他一些因素。

根據(jù)此鏈接的內(nèi)容檢查PyTorch安裝步驟,準(zhǔn)備好框架之后,再檢查以下兩個(gè)資源,利用PyTorch構(gòu)建第一個(gè)神經(jīng)網(wǎng)絡(luò):

學(xué)習(xí)如何使用PyTorch來(lái)構(gòu)建快速和準(zhǔn)確的神經(jīng)網(wǎng)絡(luò)-4個(gè)不錯(cuò)的案例研究

https://www.analyticsvidhya.com/blog/2019/01/guide-pytorch-neural-networks-case-studies/https://www.analyticsvidhya.com/blog/2019/01/guide-pytorch-neural-networks-case-studies/?utm_source=blog&utm_medium=comparison-deep-learning-framework

PyTorch教程

https://pytorch.org/tutorials/beginner/deep_learning_60min_blitz.html

五、Caffe

 

 

CAFE是另一個(gè)面向圖像處理領(lǐng)域的、比較流行的深度學(xué)習(xí)框架,它是由賈陽(yáng)青(Yangqing Jia)在加利福尼亞伯克利大學(xué)讀博士期間開(kāi)發(fā)的。同樣,它也是開(kāi)源的!

首先,Caffe對(duì)遞歸網(wǎng)絡(luò)和語(yǔ)言建模的支持不如上述三個(gè)框架。但是Caffe最突出的地方是它的處理速度和從圖像中學(xué)習(xí)的速度。

 

 

Caffe可以每天處理超過(guò)六千萬(wàn)張圖像,只需單個(gè)NVIDIA K40 GPU,其中 1毫秒/圖像用于推理,4毫秒/圖像用于學(xué)習(xí)。

它為C、Python、MATLAB等接口以及傳統(tǒng)的命令行提供了堅(jiān)實(shí)的支持。

通過(guò)Caffe Model Zoo框架可訪問(wèn)用于解決深度學(xué)習(xí)問(wèn)題的預(yù)訓(xùn)練網(wǎng)絡(luò)、模型和權(quán)重。這些模型可完成下述任務(wù):

♦ 簡(jiǎn)單的遞歸

♦ 大規(guī)模視覺(jué)分類(lèi)

♦ 用于圖像相似性的SiameSE網(wǎng)絡(luò)

♦ 語(yǔ)音和機(jī)器人應(yīng)用

有關(guān)更多細(xì)節(jié),您可以查看Caffe相關(guān)文檔。

Caffe安裝文檔

http://caffe.berkeleyvision.org/installation.html

Caffe文檔

http://caffe.berkeleyvision.org/

六、Deeplearning4j

 

 

我們社區(qū)中有Java程序員嗎?這是你理想的深度學(xué)習(xí)框架!Deeplearning4j是用Java實(shí)現(xiàn)的,因此與Python相比效率更高。它使用稱(chēng)為ND4J的張量庫(kù),提供了處理n維數(shù)組(也稱(chēng)為張量)的能力。該框架還支持CPU和GPU。

Deeplearning4j將加載數(shù)據(jù)和訓(xùn)練算法的任務(wù)作為單獨(dú)的過(guò)程處理,這種功能分離提供了很大的靈活性。誰(shuí)都喜歡這樣,尤其是在深度學(xué)習(xí)中!

Deeplearning4j也適用于不同的數(shù)據(jù)類(lèi)型:

♦ 圖像

♦ CSV

♦ 純文本等

可以使用Deeplearning4j構(gòu)建的深度學(xué)習(xí)模型有:

♦ 卷積神經(jīng)網(wǎng)絡(luò)(CNNs)

♦ 遞歸神經(jīng)網(wǎng)絡(luò)(RNNs)

♦ 長(zhǎng)短時(shí)記憶(LSTM)等多種結(jié)構(gòu)

閱讀Deeplearning4j的安裝步驟和文檔,開(kāi)始使用這個(gè)框架。

Deeplearning4j安裝步驟

https://deeplearning4j.org/docs/latest/deeplearning4j-config-gpu-cpu

Deeplearning4j文檔

https://deeplearning4j.org/docs/latest/deeplearning4j-quickstart

七、五種深度學(xué)習(xí)框架之間的對(duì)比

上面已經(jīng)討論了五個(gè)最流行的深度學(xué)習(xí)框架,每一個(gè)都獨(dú)具特性,那么數(shù)據(jù)科學(xué)家會(huì)如何做出選擇呢。

你決定用哪一種了嗎?或者你打算換一個(gè)全新的框架?不管是什么情況,了解每個(gè)框架的優(yōu)點(diǎn)和局限性非常重要。如果選對(duì)了正確的框架,當(dāng)遇到錯(cuò)誤時(shí),便不會(huì)感到驚訝了!

某些框架在處理圖像數(shù)據(jù)時(shí)工作得非常好,但無(wú)法解析文本數(shù)據(jù);某些框架在處理圖像和文本數(shù)據(jù)時(shí),性能很好,但是它們的內(nèi)部工作原理很難理解。

在本節(jié)中,將使用以下標(biāo)準(zhǔn)比較這五個(gè)深度學(xué)習(xí)框架:

♦ 社區(qū)支持力度

♦ 使用的語(yǔ)言

♦ 接口

♦ 對(duì)預(yù)訓(xùn)練的模型的支持

下表對(duì)這些框架進(jìn)行了比較:

 

 

對(duì)于選擇使用的框架來(lái)說(shuō),這是一個(gè)非常方便的對(duì)比表!

所有這些框架都是開(kāi)源的,支持CUDA,并有預(yù)訓(xùn)練的模型。但是,應(yīng)該如何正確開(kāi)始,應(yīng)該選擇哪個(gè)框架來(lái)構(gòu)建(初始)深度學(xué)習(xí)模型?讓我們來(lái)做詳細(xì)的討論!

TensorFlow

我們先來(lái)說(shuō)說(shuō)TensortFlow。TensorFlow能處理圖像以及基于序列的數(shù)據(jù),如果你是深度學(xué)習(xí)的初學(xué)者,或者對(duì)線性代數(shù)和微積分等數(shù)學(xué)概念沒(méi)有堅(jiān)實(shí)的基礎(chǔ),那么TensortFlow的學(xué)習(xí)曲線將會(huì)令人畏懼地陡峭。

我完全理解,對(duì)于剛起步的人來(lái)說(shuō),這可能太復(fù)雜。但我建議你不斷練習(xí),不斷探索社區(qū),并繼續(xù)閱讀文章以掌握TensorFlow的訣竅。一旦對(duì)這個(gè)框架有了一個(gè)很好的理解,實(shí)現(xiàn)一個(gè)深度學(xué)習(xí)模型對(duì)你來(lái)說(shuō)將是易如反掌。

Keras

Keras是一個(gè)非常堅(jiān)實(shí)的框架,可以開(kāi)啟深度學(xué)習(xí)之旅。如果你熟悉Python,并且沒(méi)有進(jìn)行一些高級(jí)研究或開(kāi)發(fā)某種特殊的神經(jīng)網(wǎng)絡(luò),那么Keras適合你。

Keras的重點(diǎn)更多地放在取得成果上,而不是被模型的復(fù)雜之處所困擾。因此,如果有一個(gè)與圖像分類(lèi)或序列模型相關(guān)的項(xiàng)目,可以從Keras開(kāi)始,很快便可以構(gòu)建出一個(gè)工作模型。

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

Caffe

在圖像數(shù)據(jù)上構(gòu)建深度學(xué)習(xí)模型時(shí),Caffe是不錯(cuò)的選擇。但是,當(dāng)談到遞歸神經(jīng)網(wǎng)絡(luò)和語(yǔ)言模型時(shí),Caffe落后于我們討論過(guò)的其他框架。Caffe的主要優(yōu)點(diǎn)是,即使沒(méi)有強(qiáng)大的機(jī)器學(xué)習(xí)或微積分知識(shí),也可以構(gòu)建出深度學(xué)習(xí)模型。

Caffe主要用于建立和部署移動(dòng)電話和其他計(jì)算受限平臺(tái)的深度學(xué)習(xí)模型。

Deeplearning4j

正如之前所述,DeepleEarning4J是Java程序員的天堂。它為CNNS、RNN和LSTMS等不同的神經(jīng)網(wǎng)絡(luò)提供了大量的支持,它在不犧牲速度的情況下可以處理大量數(shù)據(jù)。聽(tīng)起來(lái)不錯(cuò),有機(jī)會(huì)通過(guò)!

后記及圖示信息圖

除了文中提及的五種深度學(xué)習(xí)框架之外,你有沒(méi)有其他的深度學(xué)習(xí)框架?很想聽(tīng)聽(tīng)你的想法和反饋。請(qǐng)?jiān)谙旅娴脑u(píng)論部分與我聯(lián)系。

記住,這些框架基本上只是幫助我們實(shí)現(xiàn)最終目標(biāo)的工具,正確地選擇它們可以減少大量的精力和時(shí)間。

最后附上資訊插圖,詳細(xì)介紹了我們所涵蓋的每個(gè)深度學(xué)習(xí)框架。下載它,打印它,并在下次構(gòu)建深度學(xué)習(xí)模型時(shí)使用它吧!

 

 

原文標(biāo)題:

Top 5 Amazing Deep Learning Frameworks Every Data Scientist Must Know! (with Illustrated Infographic)

原文鏈接:

https://www.analyticsvidhya.com/blog/2019/03/deep-learning-frameworks-comparison/

標(biāo)簽: [db:TAGG]

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請(qǐng)與原作者聯(lián)系。

上一篇:數(shù)據(jù)科學(xué)家和數(shù)據(jù)工程師之間到底有什么差別?

下一篇:數(shù)據(jù)可視化的十種優(yōu)秀JavaScript圖表庫(kù)