国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

從硬件配置到框架選擇,請以這種姿勢入坑深度學習

marek / 3642人閱讀

摘要:幸運的是,這些正是深度學習所需的計算類型。幾乎可以肯定,英偉達是目前執(zhí)行深度學習任務較好的選擇。今年夏天,發(fā)布了平臺提供深度學習支持。該工具適用于主流深度學習庫如和。因為的簡潔和強大的軟件包擴展體系,它目前是深度學習中最常見的語言。

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

你需要的硬件

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

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

并非所有 GPU 都是一樣的

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

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

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

如果你沒有 GPU

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

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

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

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

你需要的軟件

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

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

動態(tài)計算圖 vs. 靜態(tài)計算圖

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

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

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

易于調(diào)試

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

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

TensorFlow 的 上下文管理器和會話等機制需要我們花費額外的精力學習

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

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

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

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

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

如果你能夠高效分批處理數(shù)據(jù),GPU 僅提供加速。即使你每秒收到 32 個請求,使用 GPU 很可能降低速度,因為你必須等一秒:第一個請求先到達收集所有 32 個請求,然后執(zhí)行計算,再返回結(jié)果。我們推薦在生產(chǎn)中使用 CPU,你可以按需要添加更多 CPU(比使用多個 GPU 簡單一些)。

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

學習資源

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

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

課程建議:

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

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

Udacity 免費深度學習課程:https://www.udacity.com/course/deep-learning—ud730

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

斯坦福大學 CS224d 自然語言處理深度學習:http://cs224d.stanford.edu/

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

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

Dlib 的人臉識別樣例

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

歡迎加入本站公開興趣群

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

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

QQ群:81035754

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

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

相關(guān)文章

  • 【DL-CV】【深度學習-計算機視覺】系列簡介及入門推薦

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

    Drinkey 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<