Google Colab免費(fèi)GPU使用攻略

窮學(xué)生學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)一定體會(huì)過“等待”的痛苦。畸裳。箱靴。
循環(huán)一次epoch急死人,但是有幾十個(gè)上百個(gè)循環(huán)等著你!
你盯著屏幕看著進(jìn)度條像蝸牛一樣推進(jìn),真是恨鐵不成鋼著拭,心想等日后發(fā)達(dá)了一定要買一臺(tái)好電腦...
只能先干干其他的事兒纱扭,但是心里又不放心,總是會(huì)來看儡遮,結(jié)果還是沒訓(xùn)練完乳蛾,算了,正事兒是干不了了,刷刷手機(jī)吧~

... ...(半小時(shí)過去)

終于訓(xùn)練完啦肃叶!看看結(jié)果:
woc...@#$&&**&

苦逼地重新訓(xùn)練一次....o(╥﹏╥)o

前幾天看網(wǎng)上說Google推出了免費(fèi)的GPU專門給機(jī)器學(xué)習(xí)的窮孩子們用蹂随!頓時(shí)讓我激動(dòng)了起來,馬上去試用了一下因惭。(哦岳锁,自備梯子...)

參考教程:
Google Colab Free GPU Tutorial
薅資本主義羊毛,用Google免費(fèi)GPU

但是因?yàn)樽约旱捻?xiàng)目跟教程中的不太一樣蹦魔,有一些細(xì)節(jié)沒有說清楚激率,查了很多資料終于解決,決定這里把我自己的使用過程記錄下來:

Google Colaboratory

直接Google一下:

點(diǎn)擊進(jìn)去看看:

發(fā)現(xiàn)是Colaboratory的簡介勿决,里面附有一些簡單的代碼告訴你怎么使用這個(gè)玩意兒乒躺。你會(huì)發(fā)現(xiàn)它跟Jupyternotebook很像,因?yàn)樗褪窃趈upyter notebook基礎(chǔ)上開發(fā)的:

所以很好理解低缩,Google給你準(zhǔn)備了一個(gè)云端的jupyter notebook嘉冒,你把你的代碼搬過來,在云端運(yùn)行你的代碼咆繁,耗費(fèi)的不是你自己電腦的計(jì)算力健爬,而是Google Colaboratory的計(jì)算力,而Google Colaboratory配備了Tesla K80 GPU么介!這可是貴族用的玩意兒呀娜遵,哎呀撿著大便宜了!

但是這個(gè)GPU不是默認(rèn)開啟的壤短,需要你設(shè)置一下notebook设拟,很簡單:

點(diǎn)擊筆記本上的“修改(edit)-->筆記本設(shè)置(notebook setting)”:

就出現(xiàn)了下面的窗口,在“硬件加速器”中選擇“GPU”即可:

吼吼久脯,就好了纳胧!

上面介紹的是Colaboratory的簡單使用和怎么開啟GPU,下面介紹怎么把本地的項(xiàng)目放到云端運(yùn)行:

Google drive+Colaboratory 運(yùn)行你的項(xiàng)目

Google Colaboratory是基于Google云端硬盤(drive)的帘撰,你的所有代碼文件都會(huì)保存在Google Drive中跑慕,所有我們首先需要Google drive。

先說說我自己的是什么項(xiàng)目吧:

我在本地的notebook中有這樣的一個(gè)做“神經(jīng)網(wǎng)絡(luò)風(fēng)格遷移(neural style transfer)”的項(xiàng)目摧找,目錄如下:

.ipynb就是我的jupyter notebook文件核行,

imagenet-vgg-verydeep-19是我下載的VGG神經(jīng)網(wǎng)絡(luò)模型,

nst_utils.py里面有一些功能函數(shù),也需要在.ipynb中調(diào)用蹬耘。

什么是neural style transfer呢芝雪?就是做這個(gè):

這個(gè)神經(jīng)網(wǎng)絡(luò)跑起來可是相當(dāng)費(fèi)時(shí)的,我自己的電腦综苔,生成一個(gè)400×300大小的圖片惩系,跑200個(gè)epoch需要30分鐘位岔!所以雖然這個(gè)項(xiàng)目很激動(dòng)人心,但是等一次結(jié)果真的很急人堡牡!

好了抒抬,現(xiàn)在我們開始把這個(gè)本地項(xiàng)目轉(zhuǎn)移到Google drive上,并通過Colaboratory來運(yùn)行N畋:

1.把文件夾上傳到Google drive

圖中的NST文件夾就是我上傳的瞧剖。目錄結(jié)構(gòu)跟我本地的一樣:

image

文件不能直接打開,但是Google drive里面有Colaboratory插件可免,可以打開.ipybn文件:

右鍵選擇打開方式:

我的這個(gè)文件里面抓于,需要import我的NST文件夾中的nst_utils.py文件,因?yàn)槔锩鎸懥撕芏嘀匾瘮?shù)浇借,但運(yùn)行一下程序捉撮,肯定會(huì)報(bào)錯(cuò),說找不到nst_utils.py文件妇垢。

為啥呢巾遭?因?yàn)镃olaboratory并沒有關(guān)聯(lián)你的Google drive!所以闯估,接著設(shè)置:

2.安裝必要的庫灼舍,授權(quán),連接你的Google drive

這個(gè)Colaboratory很牛逼的一點(diǎn)就是涨薪,它不光是一個(gè)notebook骑素,還可以當(dāng)命令行用!

我們在所有代碼前面刚夺,加一個(gè)單元格献丑,粘貼如下命令:

!apt-get install -y -qq software-properties-common python-software-properties module-init-tools
!add-apt-repository -y ppa:alessandro-strada/ppa 2>&1 > /dev/null
!apt-get update -qq 2>&1 > /dev/null
!apt-get -y install -qq google-drive-ocamlfuse fuse
from google.colab import auth
auth.authenticate_user()
from oauth2client.client import GoogleCredentials
creds = GoogleCredentials.get_application_default()
import getpass
!google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret} < /dev/null 2>&1 | grep URL
vcode = getpass.getpass()
!echo {vcode} | google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret}

運(yùn)行!你應(yīng)該看到類似下面這種結(jié)果:


點(diǎn)擊結(jié)果里面的驗(yàn)證鏈接侠姑,會(huì)跳到一個(gè)網(wǎng)頁创橄,顯示一長串驗(yàn)證碼
將驗(yàn)證碼復(fù)制粘貼到上面的框框中莽红,回車妥畏!

好了,然后再在一個(gè)新單元格中輸入下面命令:

!mkdir -p drive
!google-drive-ocamlfuse drive

再運(yùn)行安吁!就設(shè)置好了醉蚁!

這樣,Google drive就和Google Colaboratory連接好了柳畔,基本就可以像操作本地文件一樣來操作云端的代碼了馍管。

3.如何導(dǎo)入Google drive中的文件

現(xiàn)在如果直接寫:

from nst_utils import *

還是會(huì)報(bào)錯(cuò),說找不到薪韩!這個(gè)地方折磨了我好久确沸,不知道怎么回事兒。

后來發(fā)現(xiàn)俘陷,Colaboratory好像是單獨(dú)創(chuàng)建了一個(gè)虛擬機(jī)罗捎,在虛擬機(jī)中只有我運(yùn)行的ipybn文件,而沒有NST文件夾中的其他文件拉盾。
我們在前一步的設(shè)置桨菜,只是讓Colaboratory和drive連接了,也就是Colaboratory可以調(diào)用drive中的文件了捉偏,但是應(yīng)該通過類似絕對路徑的方式導(dǎo)入倒得,所以正確的方法應(yīng)該是寫

from drive.NST.nst_utils import *

drive就是我們的根目錄,通過“ . ”來進(jìn)入下一層目錄夭禽,這樣就可以導(dǎo)入我們的drive文件了霞掺!

同樣的,后面我們需要導(dǎo)入NST文件夾中的imagenet-vgg-verydeep-19.mat文件讹躯,也就是我們的神經(jīng)網(wǎng)絡(luò)模型菩彬,這樣寫是錯(cuò)誤的:

model = load_vgg_model("imagenet-vgg-verydeep-19.mat")

正確的寫法是:

model = load_vgg_model("drive/NST/imagenet-vgg-verydeep-19.mat")

同樣的,只要是要導(dǎo)入drive中的文件潮梯,都按照類似的絕對路徑的方法來導(dǎo)入就可以了骗灶。

4.看看這個(gè)GPU效果如何

具體代碼就不展示了,只給大家看看模型運(yùn)行的結(jié)果:


運(yùn)行了200個(gè)epoch秉馏,共耗時(shí)46秒耙旦!
而我在本地運(yùn)行,花了30分鐘左右~
可見這個(gè)速度提升地多塊萝究!Google大法好啊~
下面附上每20次迭代的結(jié)果:

最開始的圖片是這兩張:
左邊是陸家嘴照片母廷,右邊是現(xiàn)代派風(fēng)格圖片

最后生成的圖片是:
現(xiàn)代派風(fēng)格的陸家嘴

好了,關(guān)于Colaboratory的使用就先介紹到這里糊肤,主要我目前只知道這么多琴昆。。馆揉。日后有新的經(jīng)驗(yàn)會(huì)繼續(xù)更新业舍!

8月1號(hào)更新:

這幾天在使用中發(fā)現(xiàn),掛載google drive的那兩段命令升酣,在每一次新建一個(gè)notebook時(shí)都需要運(yùn)行一次舷暮,所以大家可以把那兩段命令放在一個(gè)方便查看的地方,隨時(shí)復(fù)制粘貼噩茄。

而且下面,一個(gè)項(xiàng)目可能到了第二天就不能連接drive了,這個(gè)時(shí)候需要再運(yùn)行一下命令绩聘。反正我的項(xiàng)目都是第二天早上起來就需要重新連接drive了沥割。
所以還是稍微有些麻煩耗啦。。机杜。

另外帜讲,第一次運(yùn)行命令的時(shí)候,跳出來一個(gè)鏈接椒拗,點(diǎn)擊然后輸入驗(yàn)證碼之后似将,可能它又會(huì)跳出來一個(gè)一模一樣的鏈接,同時(shí)整個(gè)版面像被清空了一樣蚀苛,這個(gè)時(shí)候在验,只要再次點(diǎn)擊鏈接,再次輸入驗(yàn)證碼然后回車堵未,看到“Access token retrieved correctly.” 就說明可以了腋舌。
然后別忘了另起一行,運(yùn)行:

!mkdir -p drive
!google-drive-ocamlfuse drive

然后就可以連接drive了兴溜。

歡迎關(guān)注我的“深度學(xué)習(xí)”專欄:
DeepLearning.ai學(xué)習(xí)筆記
和我一起一步步學(xué)習(xí)深度學(xué)習(xí)吧侦厚!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市拙徽,隨后出現(xiàn)的幾起案子刨沦,更是在濱河造成了極大的恐慌,老刑警劉巖膘怕,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件想诅,死亡現(xiàn)場離奇詭異,居然都是意外死亡岛心,警方通過查閱死者的電腦和手機(jī)来破,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來忘古,“玉大人徘禁,你說我怎么就攤上這事∷杩埃” “怎么了送朱?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長干旁。 經(jīng)常有香客問我驶沼,道長,這世上最難降的妖魔是什么争群? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任回怜,我火速辦了婚禮,結(jié)果婚禮上换薄,老公的妹妹穿的比我還像新娘玉雾。我一直安慰自己翔试,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布抹凳。 她就那樣靜靜地躺著遏餐,像睡著了一般伦腐。 火紅的嫁衣襯著肌膚如雪赢底。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天柏蘑,我揣著相機(jī)與錄音幸冻,去河邊找鬼。 笑死咳焚,一個(gè)胖子當(dāng)著我的面吹牛洽损,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播革半,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼碑定,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了又官?” 一聲冷哼從身側(cè)響起延刘,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎六敬,沒想到半個(gè)月后碘赖,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡外构,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年普泡,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片审编。...
    茶點(diǎn)故事閱讀 38,039評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡撼班,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出垒酬,到底是詐尸還是另有隱情砰嘁,我是刑警寧澤,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布伤溉,位于F島的核電站般码,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏乱顾。R本人自食惡果不足惜板祝,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望走净。 院中可真熱鬧券时,春花似錦孤里、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至炸枣,卻和暖如春虏等,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背适肠。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工霍衫, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人侯养。 一個(gè)月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓敦跌,卻偏偏與公主長得像,于是被迫代替她去往敵國和親逛揩。 傳聞我的和親對象是個(gè)殘疾皇子柠傍,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評論 2 345

推薦閱讀更多精彩內(nèi)容