午夜视频在线网站,日韩视频精品在线,中文字幕精品一区二区三区在线,在线播放精品,1024你懂我懂的旧版人,欧美日韩一级黄色片,一区二区三区在线观看视频

分享

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

 松果仁圖書館 2021-04-01

窮學(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ì)來(lái)看,結(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)了起來(lái),馬上去試用了一下。(哦,自備梯子...)

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

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

Google Colaboratory

直接Google一下:

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

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

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

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

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

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

吼吼,就好了!

上面介紹的是Colaboratory的簡(jiǎn)單使用和怎么開啟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ò)跑起來(lái)可是相當(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來(lái)運(yù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.安裝必要的庫(kù),授權(quán),連接你的Google drive

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

我們?cè)谒写a前面,加一個(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è),顯示一長(zhǎng)串驗(yàn)證碼
將驗(yàn)證碼復(fù)制粘貼到上面的框框中,回車!

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

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

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

這樣,Google drive就和Google Colaboratory連接好了,基本就可以像操作本地文件一樣來(lái)操作云端的代碼了。

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

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

from nst_utils import *

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

后來(lái)發(fā)現(xiàn),Colaboratory好像是單獨(dú)創(chuàng)建了一個(gè)虛擬機(jī),在虛擬機(jī)中只有我運(yùn)行的ipybn文件,而沒有NST文件夾中的其他文件。
我們?cè)谇耙徊降脑O(shè)置,只是讓Colaboratory和drive連接了,也就是Colaboratory可以調(diào)用drive中的文件了,但是應(yīng)該通過類似絕對(duì)路徑的方式導(dǎo)入,所以正確的方法應(yīng)該是寫

from drive.NST.nst_utils import *

drive就是我們的根目錄,通過“ . ”來(lái)進(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中的文件,都按照類似的絕對(duì)路徑的方法來(lái)導(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)目都是第二天早上起來(lái)就需要重新連接drive了。
所以還是稍微有些麻煩。。。

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

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

然后就可以連接drive了。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多