深度學習入門:投身深度學習你需要哪些準備?
更多深度文章,請關注:https://yq.aliyun.com/cloud
GPU都是一樣的
大多數深度學習從業者不是直接編程GPU; 我們使用處理這個問題的軟件庫(如PyTorch或TensorFlow)。但是,要有效使用這些庫,你需要訪問正確類型的GPU。在幾乎所有情況下,這意味著可以從Nvidia公司獲得GPU。
CUDA和OpenCL是GPU編程的兩種主要方式。CUDA是迄今為止最發達,擁有最廣泛的生態係統,也是深度學習庫最有力的支持。CUDA是由Nvidia創建的專有語言,因此它不能被其他公司的GPU使用。當fast.ai推薦使用Nvidia GPU時,我們並不是對Nvidia有特別的親近或信任,而是這是迄今為止深度學習的最佳選擇。
Nvidia在GPU市場占據主導地位,其次是競爭對手AMD公司。 今年夏天,AMD宣布發布一個名為ROCm的平台,為深度學習提供更多的支持。 PyTorch,TensorFlow,MxNet和CNTK等主要深度學習庫的ROCm狀態仍在開發中。雖然我希望看到一個開源的替代方案取得成功,但我不得不承認,我發現ROCm的文檔很難理解。我剛剛閱讀了ROCm網站的Overview,Getting Started和Deep Learning頁麵,但仍然不能用我自己的話來解釋ROCm,盡管我想在這裏把它包括在內以便完整。(我承認沒有硬件背景,但我認為像我這樣的數據科學家應該成為這個項目的目標受眾之一。)
GPU ...
-
使用Crestle,通過你的瀏覽器:Crestle是一項服務(由fast.ai學生Anurag Goel開發),為你提供在雲上的已經預先安裝並配置為在GPU上運行的所有流行的科學和深度學習框架的雲服務。它很容易通過你的瀏覽器訪問。新用戶可免費獲得10小時和1 GB的存儲空間。之後,GPU使用率是每小時59美分。我向那些剛接觸AWS或新手的人推薦使用這個選擇來使用控製台。
-
通過你的控製台設置AWS雲實例:你可以按照這個fast.ai設置課程中的步驟創建一個AWS實例(遠程為你提供Nvidia GPU)。AWS每小時收取90美分。盡管我們的設置材料都是關於AWS(並且你會發現對AWS最多的論壇支持),但是一位fast.ai學生創建了一個設置Azure虛擬機進行深度學習的指南。如果有人寫關於Google雲端引擎的博客文章,我很樂意分享和添加一個鏈接。
-
建立你自己的框架。這是我們的fast.ai論壇中的一個冗長的話題,在論壇裏人們可以提出問題,分享他們正在使用的組件,並發布其他有用的鏈接和提示。最便宜的新型Nvidia GPU是300美元左右,一些學生在eBay或Craigslist上發現了更便宜的舊版GPU,而另外一些則是為了更強大的GPU支付更多的費用。我們幾個學生寫博客文章記錄他們如何建立他們的機器:
- 深度困惑:建立深度學習機的不幸事件(Mariya Yao)
- 建立一個便捷的深度學習機器(Sravya Tirukkovalur)
- 建立你自己的深度學習框(Brendan Fortuner)
深度學習是一個相對年輕的領域,庫和工具正在迅速改變。 例如,Theano,在2016年我們選擇使用在我們的課程的第1部分,它剛剛退休。目前我們正在使用的PyTorch僅在今年(2017年)發布。 就像Jeremy之前寫的那樣,你應該假定你今天學到的任何特定的庫和軟件都會在一兩年內被淘汰。最重要的是理解底層概念,為此,我們在Pytorch上創建了自己的庫,我們相信深度學習概念更清晰,並將最佳實踐編碼為默認值。
Python是深度學習中最常用的語言。有許多深度學習庫可供選擇,幾乎所有主要科技公司都支持不同的庫,盡管這些公司的員工經常使用各種工具。深度學習庫包括TensorFlow(穀歌),PyTorch(Facebook),MxNet(華盛頓大學,由亞馬遜改編),CNTK(微軟),DeepLearning4j(Skymind),Caffe2(也是Facebook),Nnabla(索尼),PaddlePaddle(百度),以及Keras(在此列表中的其他幾個庫之上運行的高級API)。所有這些都有可用的Python選項。
穀歌的TensorFlow大多使用靜態計算圖,而Facebook的PyTorch使用動態計算。(注:TensorFlow在兩周前宣布了一個動態計算選項Eager Execution,然而它還很早,大多數TensorFlow文檔和項目都使用靜態選項)。今年9月,fast.ai宣布,我們選擇了PyTorch而不是TensorFlow來在今年的課程中使用,並用於開發我們自己的庫(PyTorch的高級包裝器,用於編碼最佳實踐)。簡單地說,下麵是我們選擇PyTorch的幾個原因(在這裏更詳細地解釋):
- 更容易調試
- 動態計算更適合於自然語言處理
穀歌已經投入了比任何其他人更多的資源來營銷TensorFlow,我認為這是TensorFlow如此知名的原因之一(對於許多深度學習以外的人來說,TensorFlow是他們聽說過的唯一的DL框架)。 如上所述,TensorFlow幾周前發布了一個動態計算選項,解決了上述一些問題。 許多人都在問fast.ai我們是否要切換回TensorFlow。動態選項還是相當新的,而且還不太成熟,所以我們現在會繼續使用PyTorch。 然而,TensorFlow團隊非常樂意接受我們的想法,我們很樂意看到我們的fastai庫被移植到TensorFlow。
注意:我們更新的課程的個人版本,其使用PyTorch以及我們自己的fastai庫,目前正在進行。課程結束後將免費在線發布(預計發布時間:1月)。
GPU
- 生產中進行培訓是非常罕見的。即使你想每天更新你的模型權重,你也不需要在生產中進行培訓。這意味著你隻是在生產過程中進行推理(通過你的模型向前傳遞),比培訓更快更容易。
- 你可以使用任何你喜歡的Web服務器(例如Flask),並將其設置為簡單的API調用。
-
1
- 如此膚淺和高水平,,以至於不能提供實際在工作場所深度學習所需的信息或技能,或創造出最先進的模型。如果你隻是想要一個高層次的概述,這是好的,但如果你想成為一個有工作的從業者,那就太令人失望了。
-
我們免費的實踐深度學習課程的獨特之處在於,唯一的先決條件是1年的編程經驗,但它仍然教你如何創造最先進的模型。你的背景可以是任何語言,但在開始課程之前你可能需要學習一些Python,因為這是我們所使用的。我們根據需要介紹數學概念,我們不建議你嚐試提前學習數學理論。
雖然很多人聲稱你需要Google大小的數據集來深入學習,但這是錯誤的。遷移學習的力量(結合數據增強等技術)使得人們可以將預先訓練的模型應用於更小的數據集。 正如我們在別處談到的那樣,在醫療初創企業Enlitic,Jeremy Howard領導的一個團隊隻使用了1000例肺癌CT掃描與癌症相比,建立了一個比一組4位專家放射科醫師更準確的診斷肺癌的算法。C ++庫Dlib有一個例子,其中一個人臉檢測器隻使用4個圖像進行精確訓練,隻包含18個人臉!
本文由北郵@愛可可-愛生活老師推薦,阿裏雲雲棲社區組織翻譯。
What you need to do deep learningRachel Thomas譯者:董昭男,審校:
文章為簡譯,更為詳細的內容,請查看原文
最後更新:2017-11-18 00:33:45