成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

從硬件配置到框架選擇,請以這種姿勢入坑深度學(xué)習(xí)

marek / 3648人閱讀

摘要:幸運(yùn)的是,這些正是深度學(xué)習(xí)所需的計(jì)算類型。幾乎可以肯定,英偉達(dá)是目前執(zhí)行深度學(xué)習(xí)任務(wù)較好的選擇。今年夏天,發(fā)布了平臺(tái)提供深度學(xué)習(xí)支持。該工具適用于主流深度學(xué)習(xí)庫如和。因?yàn)榈暮啙嵑蛷?qiáng)大的軟件包擴(kuò)展體系,它目前是深度學(xué)習(xí)中最常見的語言。

深度學(xué)習(xí)初學(xué)者經(jīng)常會(huì)問到這些問題:開發(fā)深度學(xué)習(xí)系統(tǒng),我們需要什么樣的計(jì)算機(jī)?為什么絕大多數(shù)人會(huì)推薦英偉達(dá) GPU?對于初學(xué)者而言哪種深度學(xué)習(xí)框架是較好的?如何將深度學(xué)習(xí)應(yīng)用到生產(chǎn)環(huán)境中去?所有這些問題都可以歸結(jié)為一個(gè)——搭建深度學(xué)習(xí)系統(tǒng)都需要些什么?(其中包含硬件、軟件、環(huán)境與數(shù)據(jù))在本文中,讓我們將這些問題一并解決。

你需要的硬件

我們要感謝游戲行業(yè)

從收益來看,視頻游戲行業(yè)比電影和音樂行業(yè)加起來還要大。過去 20 年中,視頻游戲行業(yè)推動(dòng) GPU 出現(xiàn)了巨大進(jìn)步,GPU 用于制作呈現(xiàn)圖所需的矩陣運(yùn)算。幸運(yùn)的是,這些正是深度學(xué)習(xí)所需的計(jì)算類型。GPU 行業(yè)的發(fā)展是神經(jīng)網(wǎng)絡(luò)比幾十年前更加強(qiáng)大的重要原因之一。大部分情況下不使用 GPU 訓(xùn)練深度學(xué)習(xí)模型會(huì)非常慢。

并非所有 GPU 都是一樣的

大部分深度學(xué)習(xí)從業(yè)者不直接編寫 GPU CUDA 代碼,我們通常會(huì)使用軟件庫(如 PyTorch 或 TensorFlow)。但是,要想高效使用軟件庫,你需要選擇合適的 GPU。在幾乎所有情況下,這意味著你需要使用英偉達(dá)的產(chǎn)品。

CUDA 和 OpenCL 是進(jìn)行 GPU 編程的兩種主要方式。CUDA 目前是開發(fā)較好、具備最廣泛生態(tài)系統(tǒng)、深度學(xué)習(xí)庫最支持的方式。CUDA 是英偉達(dá)創(chuàng)建的專用語言,因此其他公司的 GPU 無法使用它。幾乎可以肯定,英偉達(dá) GPU 是目前執(zhí)行深度學(xué)習(xí)任務(wù)較好的選擇。

英偉達(dá)主導(dǎo) GPU 市場,它較大的競爭對手是 AMD。今年夏天,AMD 發(fā)布了 ROCm 平臺(tái)提供深度學(xué)習(xí)支持。該工具適用于主流深度學(xué)習(xí)庫(如 PyTorch、TensorFlow、MxNet 和 CNTK)。目前,ROCm 仍然在不斷開發(fā)中。雖然對于用戶而言我們都希望看到另一個(gè)開源的替代方案崛起,但是我必須得承認(rèn)目前的 ROCm 文檔難以理解。我在閱讀 ROCm 網(wǎng)站上「概述、快速上手和深度學(xué)習(xí)」的頁面之后仍然無法用自己的語言復(fù)述出其中的內(nèi)容——盡管我很希望把 AMD 的這部分內(nèi)容包含進(jìn)本文中(雖然我對于硬件的理解不深,但像我這樣的數(shù)據(jù)科學(xué)家應(yīng)該是這一項(xiàng)目的使用者)。

如果你沒有 GPU

如果你的電腦沒有 GPU 或者不是英偉達(dá)的 GPU,那么你有以下幾個(gè)選擇:

通過瀏覽器使用 Crestle:Crestle 是 fast.ai 學(xué)生 Anurag Goel 開發(fā)的一項(xiàng)服務(wù),提供云服務(wù),所有流行的科學(xué)和深度學(xué)習(xí)框架都已經(jīng)預(yù)安裝和配置完成,便于在云端運(yùn)行 GPU。你可以通過瀏覽器輕松獲取。新用戶可免費(fèi)使用 10 小時(shí),享受 1 GB 的存儲(chǔ)空間。10 小時(shí)之后,每小時(shí) 59 美分。我推薦 AWS 新手或剛開始使用控制臺(tái)的人選擇該選項(xiàng)。

通過控制臺(tái)設(shè)置一個(gè) AWS 云實(shí)例:你可以按照該說明創(chuàng)建一個(gè) AWS 實(shí)例(http://course.fast.ai/lessons/aws.html)。AWS 收費(fèi)是 90 美分/小時(shí)。我們的設(shè)置材料是關(guān)于 AWS 的,不過 fast.ai 的學(xué)生為設(shè)置適合深度學(xué)習(xí)的 Azure 虛擬機(jī)創(chuàng)建了一個(gè)教程(https://medium.com/@abhikprince/setting-up-an-azure-vm-for-deep-learning-bb76b453272b)。

構(gòu)建自己的深度學(xué)習(xí)機(jī)器。這里是 fast.ai 的論壇:http://forums.fast.ai/t/making-your-own-server/174,人們在這里提問,分享使用的組件,并發(fā)布一些有用的鏈接和貼士。最便宜的全新英偉達(dá) GPU 需要 300 美元左右,很多學(xué)生發(fā)現(xiàn)這比在 eBay 或 Craigslist 上使用 GPU 便宜。fast.ai 的一些學(xué)生寫了幾篇博客記錄他們?nèi)绾闻渲米约旱脑O(shè)備:

你需要的軟件

深度學(xué)習(xí)是一個(gè)新興領(lǐng)域,軟件庫和工具包每天都在快速地提升。例如我們常在課程和研究中使用的 Theano 剛剛退休,而現(xiàn)如今非常流行的 PyTorch 也只不過是今年才發(fā)布。可能正如 Jeremy 所說的那樣,我們必須相信現(xiàn)在具體使用的函數(shù)庫或深度學(xué)習(xí)框架在一兩年后會(huì)有很大的變更,甚至有可能不復(fù)存在。因此更重要的是對深度學(xué)習(xí)底層概念的理解,所以我們在 PyTorch 上構(gòu)建了自己的庫,我們相信它能令深度學(xué)習(xí)概念更加清晰,并通過編寫標(biāo)準(zhǔn)模型進(jìn)一步在實(shí)踐中理解這些概念。

因?yàn)?Python 的簡潔和強(qiáng)大的軟件包擴(kuò)展體系,它目前是深度學(xué)習(xí)中最常見的語言。目前我們有很多深度學(xué)習(xí)庫能夠選擇,例如 TensorFlow(谷歌)、PyTorch(Facebook)、MXNet(華盛頓大學(xué)和亞馬遜)、CNTK(微軟)、DeepLearning4j(Skymind)、Caffe2(Facebook)、Nnabla(索尼)、PaddlePaddle(百度)和 Keras(構(gòu)建在前面部分庫之上的高級 API)。當(dāng)然,這些深度學(xué)習(xí)框架都支持 Python。

動(dòng)態(tài)計(jì)算圖 vs. 靜態(tài)計(jì)算圖

在很多教學(xué)和研究中,我們優(yōu)先考慮開發(fā)者是否能快速進(jìn)行實(shí)驗(yàn)與迭代,而不是考慮具體的理論性能或計(jì)算效率。這就要求深度學(xué)習(xí)框架具有更簡潔的調(diào)試和更直觀的設(shè)計(jì)等屬性,而現(xiàn)如今流行的 PyTorch 正好符合這一點(diǎn),它的動(dòng)態(tài)計(jì)算圖令深度學(xué)習(xí)模型的構(gòu)建變得更加明了與簡潔。

各深度學(xué)習(xí)庫之間一個(gè)重要的區(qū)別就是它到底是使用動(dòng)態(tài)計(jì)算圖還是靜態(tài)計(jì)算圖,當(dāng)然目前的 TensorFlow 和 MXNet 兩者都支持。動(dòng)態(tài)計(jì)算圖表示程序?qū)凑瘴覀兙帉懙捻樞驁?zhí)行,這通常令模型或代碼的調(diào)試更加方便,也使我們將創(chuàng)意從頭到尾按貫序的方式更直觀地實(shí)現(xiàn)。而對于靜態(tài)計(jì)算圖來說,我們首先要聲明或構(gòu)建一個(gè)計(jì)算圖,并確定每一個(gè)結(jié)點(diǎn)和邊的內(nèi)容與定代碼然后再執(zhí)行該靜態(tài)計(jì)算圖以訓(xùn)練模型。從理論上來說,靜態(tài)計(jì)算圖允許編譯器執(zhí)行更多的優(yōu)化,這也就導(dǎo)致我們聲明的代碼內(nèi)容和編譯器確切執(zhí)行內(nèi)容可能會(huì)有一些差別。不過即使理論上證明靜態(tài)計(jì)算圖要比動(dòng)態(tài)計(jì)算圖擁有更好的性能,但實(shí)際上很可能恰恰相反。

谷歌的 TensorFlow 可能是最常用的靜態(tài)計(jì)算圖框架,當(dāng)然它也是我們最常用的深度學(xué)習(xí)框架。而 Facebook 的 PyTorch 是現(xiàn)在最常用的動(dòng)態(tài)計(jì)算圖框架。雖然 TensorFlow 目前也表明它能支持動(dòng)態(tài)計(jì)算圖(Eager Execution),但 Eager Execution 畢竟只是新生的庫,TensorFlow 的文檔也還是以靜態(tài)計(jì)算圖為主。在今年九月,fast.ai 就表明它們的課程會(huì)使用 PyTorch 而不是 TensorFlow,并且還會(huì)使用包裝的高級 PyTorch 庫來實(shí)現(xiàn)更好的實(shí)踐體驗(yàn)。一般來說選擇 PyTorch 有以下幾個(gè)原因:

易于調(diào)試

動(dòng)態(tài)計(jì)算圖更適用于自然語言處理

支持傳統(tǒng)的面向?qū)ο缶幊田L(fēng)格

TensorFlow 的 上下文管理器和會(huì)話等機(jī)制需要我們花費(fèi)額外的精力學(xué)習(xí)

fast.ai 認(rèn)為谷歌在 TensorFlow 上做了大量的推廣與營銷,這也是 TensorFlow 如此出名的原因。對于很多深度學(xué)習(xí)門外漢來說,TensorFlow 可能是他們聽過的深度學(xué)習(xí)框架。不過雖然 TensorFlow 前幾周發(fā)布了動(dòng)態(tài)計(jì)算圖,但對于很多人來說這一擴(kuò)展庫還是非常新的概念,它還遠(yuǎn)遠(yuǎn)不夠完善與成熟。此外,TensorFlow 團(tuán)隊(duì)對于 fast.ai 的想法十分歡迎,因此我們也期待著把 fast.ai 庫遷移到 TensorFlow 中。

生產(chǎn)所需:不需要 GPU

很多人過分復(fù)雜化在生產(chǎn)中使用深度學(xué)習(xí)的想法,并且認(rèn)為他們需要比平時(shí)更復(fù)雜的系統(tǒng)才行。在生產(chǎn)中使用深度學(xué)習(xí)一塊 CPU 就可以,服務(wù)器可任選。大多數(shù)使用案例我們都推薦這么做。以下是幾個(gè)要點(diǎn):

在生產(chǎn)中進(jìn)行訓(xùn)練的情況非常少見。即使你想每天都更新模型權(quán)重,也無需在生產(chǎn)中進(jìn)行訓(xùn)練。這是一個(gè)好消息!因?yàn)檫@樣你只需要在生產(chǎn)中進(jìn)行推斷(模型中的前向傳遞)就行了,比訓(xùn)練更快也更簡單。

你可以使用任意服務(wù)器(如 Flask),將推斷設(shè)置為一個(gè)簡單的 API 調(diào)用。

如果你能夠高效分批處理數(shù)據(jù),GPU 僅提供加速。即使你每秒收到 32 個(gè)請求,使用 GPU 很可能降低速度,因?yàn)槟惚仨毜纫幻耄旱谝粋€(gè)請求先到達(dá)收集所有 32 個(gè)請求,然后執(zhí)行計(jì)算,再返回結(jié)果。我們推薦在生產(chǎn)中使用 CPU,你可以按需要添加更多 CPU(比使用多個(gè) GPU 簡單一些)。

大公司在生產(chǎn)過程中使用 GPU 可能有意義,等你到那個(gè)規(guī)模時(shí)就知道了。過早嘗試擴(kuò)大規(guī)模只會(huì)增加不必要的復(fù)雜性,降低速度。

學(xué)習(xí)資源

目前網(wǎng)上有非常多的機(jī)器學(xué)習(xí)和深度學(xué)習(xí)資源,甚至各種各樣的深度學(xué)習(xí)速成班也快速地成長了起來。因此,我們有必要了解優(yōu)秀的學(xué)習(xí)資源到底有哪些。一般來說,學(xué)習(xí)資源可分為四部分,首先是如吳恩達(dá) Machine Learning 或 Deep Learning Specialization 等課程視頻,隨后還有李航的統(tǒng)計(jì)學(xué)習(xí)方法或 Ian Goodfellow 的 DeepLearning 書籍,后面的機(jī)器學(xué)習(xí)或深度學(xué)習(xí)技術(shù)博客也不能錯(cuò)過。當(dāng)然,最后部分的學(xué)習(xí)資源應(yīng)該來自研究論文,因?yàn)槲覀円窍M私庖粋€(gè)算法或一個(gè)技術(shù),沒有什么是比專門描述該技術(shù)的論文講述地更加清晰。(若需要了解目前各方向業(yè)內(nèi)較佳性能的工作,請查看:良心GitHub項(xiàng)目:各種機(jī)器學(xué)習(xí)任務(wù)的較高級結(jié)果(論文)匯總)

以上這四部分的資源又可以從兩個(gè)方面理解,即實(shí)踐和理論。對于實(shí)踐來說,我們只需要理解深度學(xué)習(xí)的基本概念,然后再詳細(xì)了解各深度學(xué)習(xí)框架的庫函數(shù)就能學(xué)著實(shí)現(xiàn)簡單的深度學(xué)習(xí)模型。而對于理論來說,數(shù)學(xué)基礎(chǔ)是十分重要的,先不說基本的概率論、微積分、線性代數(shù),那些深度學(xué)習(xí)概念背后的數(shù)學(xué)推導(dǎo)我們同樣需要理解。此外,深度學(xué)習(xí)非常核心的最優(yōu)化方法也是一個(gè)大坑,需要非常多的理論知識(shí)來做出改進(jìn)。

課程建議:

斯坦福大學(xué) CS231n 卷積神經(jīng)網(wǎng)絡(luò)與圖像識(shí)別:http://cs231n.stanford.edu/

吳恩達(dá) Deep Learning Specialization:https://www.coursera.org/specializations/deep-learning

Udacity 免費(fèi)深度學(xué)習(xí)課程:https://www.udacity.com/course/deep-learning—ud730

Geoffrey Hinton 的 Neural Networks For Machine Learning:https://www.coursera.org/learn/neural-networks

斯坦福大學(xué) CS224d 自然語言處理深度學(xué)習(xí):http://cs224d.stanford.edu/

所需數(shù)據(jù):比你想象的少得多

盡管很多文章聲稱需要谷歌級別的數(shù)據(jù)集才能做深度學(xué)習(xí),這種說法是錯(cuò)誤的。遷移學(xué)習(xí)(數(shù)據(jù)增強(qiáng)技術(shù)相關(guān))使人們可以在小型數(shù)據(jù)集上使用預(yù)訓(xùn)練的模型。在醫(yī)療創(chuàng)業(yè)公司 Enlitic,Jeremy Howard 帶領(lǐng)的團(tuán)隊(duì)僅使用 1000 個(gè)肺癌 CT 掃描樣本構(gòu)建了一個(gè)算法,該算法診斷肺癌的準(zhǔn)確率超過 4 個(gè)放射科專家。C++ 庫 Dlib 有一個(gè)樣例:人臉檢測器僅使用包含 18 張人臉的 4 張圖像就可以進(jìn)行準(zhǔn)確訓(xùn)練!?

Dlib 的人臉識(shí)別樣例

原文鏈接:http://www.fast.ai/2017/11/16/what-you-need/

歡迎加入本站公開興趣群

商業(yè)智能與數(shù)據(jù)分析群

興趣范圍包括各種讓數(shù)據(jù)產(chǎn)生價(jià)值的辦法,實(shí)際應(yīng)用案例分享與討論,分析工具,ETL工具,數(shù)據(jù)倉庫,數(shù)據(jù)挖掘工具,報(bào)表系統(tǒng)等全方位知識(shí)

QQ群:81035754

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/4670.html

相關(guān)文章

  • 【DL-CV】【深度學(xué)習(xí)-計(jì)算機(jī)視覺】系列簡介及入門推薦

    摘要:最后還是強(qiáng)調(diào)一下自學(xué)的重要性,深度學(xué)習(xí)及其分支都是一個(gè)大坑,知識(shí)量巨大,希望大家充分利用搜索引擎對已學(xué)知識(shí)點(diǎn)進(jìn)行補(bǔ)充或解疑,觀摩大佬們的代碼,不要滿足于這小小的系列 【DL-CV】計(jì)算機(jī)視覺前置了解 showImg(https://segmentfault.com/img/bVbeOwJ?w=1464&h=1000); 閑了就要找事做,不能被四公主和NS誘惑。所以在搞完了爬蟲進(jìn)入假期時(shí)...

    Drinkey 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<