實(shí)驗(yàn)室一塊GPU都沒有!怎么做深度學(xué)習(xí)?
↑↑↑點(diǎn)擊上方藍(lán)字,回復(fù)資料,10個(gè)G的驚喜
轉(zhuǎn)載自 | CVer 編輯:Amusi | 來(lái)源:知乎https://www.zhihu.com/question/299434830
本文僅作為學(xué)術(shù)分享,如果侵權(quán),會(huì)刪文處理
實(shí)驗(yàn)室一塊GPU都沒有怎么做深度學(xué)習(xí)
試沒錯(cuò),一塊GPU都沒有,今年突然新研一的學(xué)生都要搞深度學(xué)習(xí)了,老師還催著有想法實(shí)現(xiàn)一下,硬件都沒有如何實(shí)現(xiàn)呢
作者:目楽
https://www.zhihu.com/question/299434830/answer/1329278982
Google colab應(yīng)該是非常不錯(cuò)的選擇,長(zhǎng)期免費(fèi),褥資本主義羊毛,我們絕不手軟2333,下面是一個(gè)非常簡(jiǎn)單的三步上手使用教程
首先是介紹(甚至可以跳過(guò)):
它的配置大概是15g硬盤(Google drive的云空間)當(dāng)然各種庫(kù)文件是不算在內(nèi)的,你可以把它理解成一個(gè)數(shù)據(jù)存儲(chǔ)空間,內(nèi)存大概是12gb左右,gpu目前有4種,p100,T4,P4,K80,內(nèi)置tensorflow以及pytorch的完整庫(kù)文件,如果想用其他深度學(xué)習(xí)庫(kù),一個(gè)pip就可以搞定,基本可以滿足大部分項(xiàng)目或者比賽的使用體驗(yàn)。
比如之前參加的,情緒識(shí)別比賽,數(shù)據(jù)集大概是10w條文本,使用bert之類的超大預(yù)訓(xùn)練模型,也能保證正常運(yùn)算,不至于內(nèi)存外存溢出,顯存也是8gb-16gb不等
對(duì)于colab使用其實(shí)只需三個(gè)步驟就可以輕松上手:
使用前的必備條件:
一個(gè)可以上Google的工具,這里的工具一般有按時(shí)間計(jì)費(fèi)還有按流量計(jì)費(fèi)(當(dāng)然也有各種免費(fèi)的)我推薦用流量計(jì)費(fèi)的工具比較劃算。
Google賬號(hào),這個(gè)有手機(jī)有上一個(gè)工具就行。
1. 創(chuàng)建一個(gè)colab文件
https://drive.google.com/drive/my-drive
進(jìn)入Google云盤后

如上圖所示,紅框是新建文件(比如colab文件)綠框是對(duì)已有文件,共享文件之類的查看,黃框是儲(chǔ)存空間顯示,藍(lán)框是存儲(chǔ)空間文件可視化。

在使用上,點(diǎn)擊之前圖里的新建,然后點(diǎn)擊更多,再點(diǎn)擊colab就可以新建文件了,當(dāng)然如果是第一次使用,可能存在colab選項(xiàng)不顯示的情況,點(diǎn)擊關(guān)聯(lián)更多應(yīng)用即可。

點(diǎn)擊colab選項(xiàng)后會(huì)跳轉(zhuǎn)到該頁(yè)面,它與jupyter基本一模一樣,黃框是輸入代碼段,綠框是連接服務(wù)器,白框是文件目錄,紅框是colab文件名,藍(lán)框是使用選項(xiàng)。
2. 配置colab環(huán)境(無(wú)需任何代碼)

使用第一步,選擇gpu,點(diǎn)擊前一張圖藍(lán)框里的修改,再點(diǎn)擊筆記本設(shè)置就可以配置gpu了。

藍(lán)框點(diǎn)擊選擇gpu即可

然后點(diǎn)之前綠框的連接即配置好環(huán)境

點(diǎn)擊圖中紅框,再點(diǎn)擊藍(lán)框即可將Google drive的云空間連接起來(lái)

這時(shí)就有了drive文件夾
現(xiàn)在配置已經(jīng)全部完成
3. 簡(jiǎn)單的上手與配置

既然已經(jīng)配置完了,那么就上手使用一下吧,看看我們配置的gpu會(huì)是哪一個(gè)
很幸運(yùn)是P100,擁有16g顯存,這塊卡京東大概3w RMB。

這句其實(shí)就是把根目錄定位到drive下,這樣你的文件和你在Google drive頁(yè)顯示的是相同目錄
4. 后記
一些要點(diǎn):
1. 如果不知道該寫一個(gè)什么樣的項(xiàng)目,下面這篇文章是一篇關(guān)于nlp當(dāng)中情緒識(shí)別分類項(xiàng)目的實(shí)戰(zhàn),代碼已放到github上,包括lstm,bert,xlnet等多種分類模型的使用。(路過(guò)別忘了點(diǎn)個(gè)贊,github加個(gè)star吧)
https://github.com/SuperpeakZhou/emotion_reg
2. 對(duì)于colab使用的一些竅門:
如果gpu不是p100而是k80,兩者計(jì)算速度還是有明顯差距的,可以選擇再新建一個(gè)colab文件,一般兩三次就可以開到p100了。
如果Google drive的云空間不夠了,建議不要買,因?yàn)檎娴暮苜F,你可以選擇更明智的方式,再弄一個(gè)Google賬號(hào)2333,因?yàn)閐rive互相分享文件是非常便捷的,且分享文件是不占據(jù)當(dāng)前用戶存儲(chǔ)空間。
如果gpu資源用盡,基本上如果你天天使用10小時(shí)以上colab,可能就會(huì)面臨只能用cpu,gpu用完的場(chǎng)景,需要1天時(shí)間恢復(fù),解決方案和上面一樣,再弄一個(gè)谷歌賬號(hào)。
具體想到就這些,之后再補(bǔ)充。
作者:snowhou
https://www.zhihu.com/question/299434830/answer/1231487151
你這一塊卡沒有做深度學(xué)習(xí)不太現(xiàn)實(shí),最好說(shuō)服你老師最好買幾張卡(1080ti)以上,畢竟也不是你一個(gè)人在用。這是其實(shí)是最劃算的方式,在網(wǎng)上無(wú)論是免費(fèi)還是付費(fèi)的資源,終究不是長(zhǎng)遠(yuǎn)之計(jì),而且有一定的使用限制。爭(zhēng)取不到卡的話還是乘早棄坑吧,深度學(xué)習(xí)不用大量的卡"喂",很難研究出什么東西。

分享下我自己的"卡"路,你可以參考下我的"貧民"歷程。
一開始有4塊1080,和師兄們一起用,當(dāng)時(shí)剛開始入門,也就跑下 cs231n 和當(dāng)時(shí)還是caffe 版本的 R-CNN,電腦系統(tǒng)太老了caffe總是出問題,也在網(wǎng)上用過(guò)服務(wù)器(國(guó)內(nèi)付費(fèi)的,谷歌云的300美金,Colab 等),也就隨便跑了跑。后來(lái)隨著 detectron 等的開源,發(fā)現(xiàn) 1080 顯存太小了,而且速度太慢,只能跑 VOC,跑 COCO 不太現(xiàn)實(shí),一度很奔潰,想著是不是要換個(gè)方向。
以后對(duì)老師軟磨硬泡,加了臺(tái) 雙2080ti 的機(jī)器,終于可以跑 COCO 了,雖然訓(xùn)練時(shí)間還是略長(zhǎng),不過(guò)已經(jīng)在接受范圍內(nèi)了。
后來(lái)機(jī)緣巧合下發(fā)現(xiàn)了些免費(fèi)的平臺(tái)(百度 AIStudio等),第一次用到 V100 ,爽過(guò)吸大麻。多注冊(cè)了幾個(gè)賬戶,終于不在擔(dān)心算力的問題,就這樣開始了升級(jí)打怪之路,跑跑論文代碼,打打比賽,好多任務(wù)都可以并行展開了,這時(shí)候就相當(dāng)舒服了,沒有了算力的約束,成長(zhǎng)起來(lái)也是很快的。假如沒有了這些免費(fèi)平臺(tái),怕不是要在入門的地方原地踏步了。
其實(shí)缺少算力還可以去企業(yè)實(shí)習(xí),不過(guò)如果基本的 1080ti 都用不上,大概門都入不了,公司估計(jì)也進(jìn)不去。所以還是最開始的話,盡早聯(lián)合你同屆同學(xué)說(shuō)服老師買卡,不然還是乘早棄坑。自己學(xué)(無(wú)人指導(dǎo)) + 沒卡 = 天坑 ?,切記!

作者:Albertforgcn
https://www.zhihu.com/question/299434830/answer/1042475523
不知題主是碩士還是博士,作為一名末流雙一流B類高校土博,我來(lái)交流交流我的經(jīng)驗(yàn)吧。先介紹背景,導(dǎo)師是軟件工程專業(yè)出身,主要在外面開公司做生意。所以實(shí)驗(yàn)室別說(shuō)是GPU,連一臺(tái)電腦都沒有。所有碩士博士自帶筆記本,只有去他公司實(shí)習(xí)的學(xué)生才能在公司用電腦。一開始導(dǎo)師叫我去給他做一個(gè)縱向項(xiàng)目,經(jīng)過(guò)我的分析,此項(xiàng)目工程性太強(qiáng),用的都是成熟的技術(shù),不太好寫SCI論文,況且甲方還要求幫他們寫SCI,此坑很深,我果斷通過(guò)我的人脈關(guān)系給導(dǎo)師介紹了個(gè)經(jīng)費(fèi)為此項(xiàng)目?jī)杀兜牧硗庖粋€(gè)項(xiàng)目,但條件是放過(guò)我,我自己搞,導(dǎo)師同意了,但是也不會(huì)給我經(jīng)費(fèi)支持,他就把此項(xiàng)目交給新來(lái)的一個(gè)博士學(xué)弟做。于是沒有其他雜事的干擾,我就自己研究深度學(xué)習(xí)。選這個(gè)方向是因?yàn)楹冒l(fā)論文,我們的畢業(yè)要求是四篇SCI,其中有一篇必須中科院二區(qū)。沒有資源怎么辦,找資源唄。我同期一個(gè)博士,是其他研究所過(guò)來(lái)的,已經(jīng)有副高級(jí)職稱,比我年長(zhǎng)很多,可稱之為老大哥。老大哥原來(lái)學(xué)的微電子,由于跨專業(yè)考的計(jì)算機(jī),編程不是很熟練,沒關(guān)系啊,我熟練啊,他的實(shí)驗(yàn)我就幫他寫代碼,他在他原單位就有一臺(tái)擁有著四塊RTX2080ti的計(jì)算機(jī),我就借用著他的機(jī)器做實(shí)驗(yàn),當(dāng)然他家人病了我也介紹了一些醫(yī)療上的人脈給他免費(fèi)看病。另外,給我導(dǎo)師項(xiàng)目的那個(gè)人脈關(guān)系也是我的好兄弟,我?guī)退?lián)系了另一個(gè)學(xué)校讀博士,也幫他解決了一些家人工作安排的問題。他在另外一個(gè)研究所工作,有一臺(tái)2張rtx titan的機(jī)器可以給隨時(shí)用。有了這兩臺(tái)機(jī)器,我現(xiàn)在已經(jīng)中了一篇二區(qū),還有兩篇一區(qū)在投,第四篇實(shí)驗(yàn)也做完了,著手準(zhǔn)備寫??傊陂g也通過(guò)人介紹認(rèn)識(shí)了一些會(huì)寫文章的大牛,給予了充分的指導(dǎo),寫論文的水平在穩(wěn)步提高。非常感謝在我科研道路上幫助過(guò)我的人,老大哥,好兄弟,還有幾位大牛都是我的人生導(dǎo)師,當(dāng)然也包括我導(dǎo)師在內(nèi),至少他沒有過(guò)多干涉我的研究方向和內(nèi)容,這點(diǎn)我也很感激他。
所以總結(jié)一下:
1、平時(shí)多積累人脈,力所能及的事能幫忙就幫忙,而且?guī)兔σ欢ㄒ獛脱┲兴吞康拿Γ皇清\上添花的忙。當(dāng)然選擇幫忙的對(duì)象也很重要,這個(gè)就是另外一個(gè)話題了。
2、有啥樣的材料就做啥樣的菜。比如我借用的兩臺(tái)機(jī)器比不上有些大組幾十塊GV100的顯卡,我去參觀過(guò),真的是一層樓都是顯卡。于是我選擇做的方向之一是如何在有限的計(jì)算資源下提高模型的準(zhǔn)確率,也就是說(shuō)要在保證準(zhǔn)確率的條件下輕量化模型,這樣就不會(huì)用到太多的計(jì)算資源,雖然是有些被逼無(wú)奈。
3、跟導(dǎo)師談判一定要把對(duì)方當(dāng)成商人,尤其是計(jì)算機(jī)專業(yè),基本上都在外面有產(chǎn)業(yè),你要是把他當(dāng)老師來(lái)溝通,跟他講師德師風(fēng)什么的,他會(huì)覺得你就是個(gè)SB。你要是跟他進(jìn)行利益交換,只要不是個(gè)特別軸的導(dǎo)師,他基本上都會(huì)同意。所以切記不要用學(xué)生思維去想這件事,我們需要的是解決眼前的問題,盡快畢業(yè),而不是在實(shí)驗(yàn)室跟他撕逼。
4、大牛的指導(dǎo)很重要!很重要!很重要!很多東西你自己搞沒什么進(jìn)展,但是經(jīng)過(guò)大牛給你點(diǎn)一下,一點(diǎn)就通。我最近正在拉關(guān)系套近乎,看能不能讓大牛給指點(diǎn)指點(diǎn)投頂會(huì)。怎么認(rèn)識(shí)大牛且他愿意幫助你又是另外一個(gè)話題了。
5、最后的一點(diǎn),搞科研智商情商都很重要,尤其是讀博士,就像是人的兩條腿,斷一條就一瘸一拐的走不順,斷兩條腿你就只能爬著走了。智商能夠幫助你抓住idea,做實(shí)驗(yàn),推公式;情商能夠幫助你獲得很多外圍資源和支持。
總之,現(xiàn)在讀了快三年了,一路下來(lái)很辛苦,還有家里的事情要處理權(quán)衡,尤其是第一篇論文投出去沒消息,第二篇論文被大牛批評(píng)的體無(wú)完膚不斷修改沒有盡頭的時(shí)候,當(dāng)時(shí)感覺真的是鄰近崩潰了,還好努力沒有白費(fèi),至少第一篇錄用了,后面不斷努力我相信也會(huì)水到渠成的。這是我的經(jīng)驗(yàn),和你分享分享。
作者:葉小飛
https://www.zhihu.com/question/299434830/answer/1709239142
看了很多大佬提出了如何白嫖云端GPU等巧妙的技巧,但我的建議是勒緊褲腰帶,給自己攢一個(gè)帶GPU的筆記本電腦。理由如下:
科研雖然有老師帶領(lǐng),但終究是給自己做的。你買了這筆記本電腦后可以隨時(shí)隨地寫深度學(xué)習(xí)代碼,訓(xùn)練自己的模型(根據(jù)你的描述,我不認(rèn)為你們實(shí)驗(yàn)室的項(xiàng)目需要很強(qiáng)的算力,單塊性能不錯(cuò)的GPU估計(jì)基本滿足),基本不受網(wǎng)絡(luò)、地理限制,能更快地推進(jìn)自己科研進(jìn)度,盡早出論文。
鑒于你正處于深度學(xué)習(xí)入門階段,有一臺(tái)帶GPU的私人筆記本可以大大加速你的學(xué)習(xí)進(jìn)度。一般入門者都會(huì)上一些深度學(xué)習(xí)的課程,許多課程設(shè)置的作業(yè)往往需要你至少有一塊GPU來(lái)完成。同時(shí),由于這筆記本是你私人產(chǎn)物,你可以用來(lái)開發(fā)一些業(yè)余有趣的項(xiàng)目,參加Kaggle比賽等等,從長(zhǎng)遠(yuǎn)來(lái)看,它絕對(duì)會(huì)為你創(chuàng)造額外的價(jià)值。
云端服務(wù)器一般用來(lái)做大規(guī)模的訓(xùn)練,prototyping最好用的永遠(yuǎn)是本地的機(jī)器。假設(shè)你發(fā)現(xiàn)代碼有問題,要一步步debug你的代碼,查看每個(gè)變量的內(nèi)存,結(jié)果你發(fā)現(xiàn)只能面對(duì)冰冷的沒有UI的console,或者卡的要死的云端VM,亦或者還要排隊(duì)等GPU資源,你會(huì)不會(huì)感到很抓狂?這就是為什么在知名的實(shí)驗(yàn)室或者大廠里,標(biāo)配是人手一個(gè)帶著Gpu的workstation做算法原型 + 大型的gpu cluster做大規(guī)模訓(xùn)練。
之所以建議買筆記本而不是workstation, 主要是因?yàn)閣orkstation體積太大,要么放到實(shí)驗(yàn)室里用,要么放在家里用,使用場(chǎng)所受到很大的限制。而且目前來(lái)看筆記本的性能應(yīng)該足以滿足你的需求。
寫在最后,當(dāng)年我暑假在美國(guó)西北大學(xué)mHealth實(shí)驗(yàn)室做科研的時(shí)候,實(shí)驗(yàn)室里一塊GPU都沒有,我就是咬緊牙買了一臺(tái)MSI筆記本(自帶一塊1060),后來(lái)這筆記本立下了汗馬功勞,我有兩篇論文的實(shí)驗(yàn)都是在上面跑出來(lái)的。
作者:張航
https://www.zhihu.com/question/299434830/answer/1693216384
這個(gè)問題,5年前我也想問。
還記得 CVPR 2015 開完會(huì)回來(lái),感覺大家都在討論 deep learning,convolutional neural network,當(dāng)時(shí)覺得應(yīng)該試試。我就用網(wǎng)上開源的 LetNet 在筆記本上訓(xùn)練了一下我們當(dāng)時(shí)自己采集的數(shù)據(jù)集,結(jié)果完爆我們費(fèi)盡心思手動(dòng)設(shè)計(jì)的傳統(tǒng)方法。我當(dāng)時(shí)就鼓動(dòng)我老板,讓她給實(shí)驗(yàn)室買個(gè)帶 GPU 的機(jī)器。結(jié)果她語(yǔ)重心長(zhǎng)地說(shuō): "你看實(shí)驗(yàn)室這些舊電腦,我之前給每一個(gè) PhD 學(xué)生都配一臺(tái)電腦,結(jié)果沒過(guò)多長(zhǎng)時(shí)間,大家都不用了,只用自己的筆記本,所以不要把錢花在硬件上"。我竟無(wú)言以對(duì)。。。
但是 Research 還是要做,我就一狠心買了個(gè) Titan-Z GPU,大概花了博士一個(gè)月的工資,然后就有了下面這張圖:


那時(shí)候還沒有 eGPU,我就自己搞了個(gè)解決方案,用一個(gè)外置臺(tái)式機(jī)電源帶動(dòng) thunderbolt to PCIe 的轉(zhuǎn)接器。有了這些“裝備”之后,我就開始了調(diào)參的不歸路。
比較早入坑,16 年用 MatConvNet 復(fù)現(xiàn)了一下 ResNet ,然后用 ResNet 提了下 feature,比較容易水 paper。在 NVIDIA 實(shí)習(xí)的時(shí)候,聽說(shuō)可以自己寫 proposal 向 NVIDIA 申請(qǐng)免費(fèi)的 GPU,之后就每年都申請(qǐng)一塊,直到畢業(yè)。在發(fā)了幾篇 deep learning 的 paper 之后,我老板也開始換方向了,而且給組里的學(xué)弟們買了8卡的GPU Server(當(dāng)時(shí)是我畢業(yè)前幫老板挑的機(jī)器,可惜自己沒有用到)。
很難想象,當(dāng)初如果自己沒有自費(fèi)買 GPU,現(xiàn)在我會(huì)在哪里,在做什么。如果客觀條件不好,盡量想辦法克服一下,機(jī)會(huì)要好好把握
推薦閱讀
(點(diǎn)擊標(biāo)題可跳轉(zhuǎn)閱讀)
下載 | 經(jīng)典著作《機(jī)器學(xué)習(xí):概率視角》.pdf
從貝葉斯定理到概率分布:詳解概率論機(jī)器學(xué)習(xí):XGBoost vs 神經(jīng)網(wǎng)絡(luò)
老鐵,三連支持一下,好嗎?↓↓↓
