Google Colab——用谷歌免费GPU跑你的深度学习代码
Google Colab簡(jiǎn)介
Google Colaboratory是谷歌開(kāi)放的一款研究工具,主要用于機(jī)器學(xué)習(xí)的開(kāi)發(fā)和研究。這款工具現(xiàn)在可以免費(fèi)使用,但是不是永久免費(fèi)暫時(shí)還不確定。Google Colab最大的好處是給廣大的AI開(kāi)發(fā)者提供了免費(fèi)的GPU使用!GPU型號(hào)是Tesla K80!你可以在上面輕松地跑例如:Keras、Tensorflow、Pytorch等框架。
官方教程
新手指引:https://medium.com/deep-learning-turkey/google-colab-free-gpu-tutorial-e113627b9f5d
常見(jiàn)問(wèn)題:https://research.google.com/colaboratory/faq.html
官方給出的新手指引當(dāng)中已經(jīng)給出了前期配置、常見(jiàn)軟件和庫(kù)的安裝等方法。大家憑借官方教程可以基本入門Colab,但如果想更加自如地在Colab上跑通自己的代碼,可能還需要更多的學(xué)習(xí)。
我寫的這篇教程結(jié)合了官方給的資料和網(wǎng)上其他小伙伴的經(jīng)驗(yàn),希望對(duì)剛接觸Colab的童鞋有所幫助: )(我自己使用Colab的時(shí)間其實(shí)不長(zhǎng),文中如果有錯(cuò)誤的地方還望大家指正~)
基本操作
認(rèn)識(shí)Google Colab
依賴平臺(tái):Google Drive
Colab需要從Google Drive(谷歌云盤)進(jìn)入。為了方便整理,我先在Google Drive中創(chuàng)建了一個(gè)新文件夾"Colab"。
創(chuàng)建新文件夾"Colab"然后,我們?cè)?em>"Colab"文件夾中新建一個(gè)Colab項(xiàng)目,如圖所示:
新建Colab項(xiàng)目注意:首次創(chuàng)建Colab項(xiàng)目需要點(diǎn)擊“關(guān)聯(lián)更多應(yīng)用”,添加“Colaboratory”應(yīng)用。
創(chuàng)建完項(xiàng)目之后我們就可以進(jìn)入Colab的主界面了。
現(xiàn)在,我們就可以在代碼框中輸入一些代碼。這里注意,如果我們直接輸入代碼,系統(tǒng)會(huì)當(dāng)作是Python代碼執(zhí)行。例如我們輸入:
a = 1
print(a)
運(yùn)行之后輸出框中會(huì)打印出"1"。
而如果我想執(zhí)行系統(tǒng)命令,需要在命令前加感嘆號(hào)!。例如我們輸入:
!ls
執(zhí)行后輸出框中會(huì)顯示當(dāng)前目錄下的所有文件夾。是不是很像Linux下的命令行操作哈哈!
其實(shí)我們?cè)贑olab中連接的云端的那臺(tái)虛擬機(jī)正是使用的Ubuntu操作系統(tǒng),我們可以將自己在Colab中的一切操作看作是在用命令行控制云端的那臺(tái)Ubuntu虛擬機(jī)。你可以用它來(lái)直接跑代碼,也可以使用一些系統(tǒng)命令(我們后面要安裝第三方軟件都需要借助一系列的系統(tǒng)命令)。看到這有沒(méi)有感覺(jué)自己瞬間多了一臺(tái)電腦~
前期配置
1. 修改筆記本環(huán)境
我們每新建一個(gè)Colab項(xiàng)目,先對(duì)筆記本環(huán)境進(jìn)行配置,選擇是Python2還是Python3,是否使用GPU。(其中Python2是2.7版本,Python3是3.6版本)
筆記本設(shè)置修改完后點(diǎn)擊保存。
2. 安裝必要的包和軟件
在代碼段中輸入以下代碼:
!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ùn)行中會(huì)提示輸入驗(yàn)證碼,點(diǎn)擊程序給出的網(wǎng)址進(jìn)行驗(yàn)證即可。
3. 掛載Google Drive
其實(shí)完成前面的操作我們就可以在Colab中敲寫代碼或者輸入一些系統(tǒng)命令了,但是我們現(xiàn)在連接的虛擬機(jī)是和Google Drive脫離的,也就是說(shuō)我們跑的程序無(wú)法使用谷歌云盤里的文件,這就非常受限制了。所以我們一般需要將谷歌云盤看作是虛擬機(jī)中的一個(gè)硬盤掛載,這樣我們就可以使用虛擬機(jī)輕松訪問(wèn)谷歌云盤。
掛載Google Drive代碼:
!mkdir -p drive
!google-drive-ocamlfuse drive
掛載完后在虛擬機(jī)中會(huì)多出一個(gè)文件夾"drive",我們可以用!ls命令查看。
安裝深度學(xué)習(xí)平臺(tái)
在官方教程中已經(jīng)有Keras、Tensorflow、Pytorch的安裝方法,我平時(shí)使用Pytorch比較多,所以這里只給出Pytorch的安裝代碼。
!pip install http://download.pytorch.org/whl/cu80/torch-0.3.1-cp36-cp36m-linux_x86_64.whl torchvision 我這里安裝的是0.3.1的版本,大家可以根據(jù)自己的需要調(diào)整版號(hào)。
安裝完后輸入import pytorch沒(méi)有報(bào)錯(cuò),基本上就是安裝成功了。
到此,我們介紹完了Colab中的基本操作,我們現(xiàn)在可以在Colab中跑一些簡(jiǎn)單的代碼了。但這顯然還不夠,下面我將介紹一些進(jìn)階操作以及舉例說(shuō)明如何在Colab中跑自己寫好的.py文件。
進(jìn)階操作
更改工作目錄
在Colab中cd命令是無(wú)效的,切換工作目錄使用chdir函數(shù)。
import os
os.chdir("drive")
執(zhí)行以上代碼,當(dāng)前工作目錄會(huì)進(jìn)入到drive文件夾下。我們?cè)偈褂?code>!ls命令會(huì)發(fā)現(xiàn)系統(tǒng)輸出的是drive文件夾下的目錄。
回到上級(jí)目錄:os.chdir('../')
安裝Java8
有的第三方Python庫(kù)可能需要依賴Java或是其他軟件才能運(yùn)行,有了前面的介紹,我們就可以在Colab中安裝Java8了,其他復(fù)雜的軟件安裝也可以參考Java8的安裝步驟進(jìn)行安裝。
0. Colab前期配置(前面已經(jīng)說(shuō)了,這里不重復(fù)說(shuō)啦)
1. 添加ppa
!add-apt-repository ppa:webupd8team/java --yes
!apt-get update
注意:--yes這個(gè)小操作很關(guān)鍵,如果我們不在那句代碼中加入后綴--yes,系統(tǒng)會(huì)給出這樣的信息:
程序會(huì)卡在這個(gè)地方,讓你輸入回車?yán)^續(xù)安裝或者Ctrl-C結(jié)束安裝。但是Colab中不支持用戶在程序運(yùn)行過(guò)程中與命令行進(jìn)行交互,我們沒(méi)辦法將回車鍵輸給命令行,所以需要提前在代碼中就告訴系統(tǒng)我們?cè)诤竺娴倪x擇中選'yes'。
這個(gè)小技巧在Colab中會(huì)被經(jīng)常用到。
2. 安裝oracle-java-installer
!echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select true | /usr/bin/debconf-set-selections
!apt-get install oracle-java8-installer
和步驟一中同樣的道理,第一句代碼是為了提前告訴系統(tǒng)我們同意 oracle 的服務(wù)條款,否則安裝程序會(huì)因?yàn)闊o(wú)法彈出協(xié)議窗口而自動(dòng)停止。
到這里我們就正式地開(kāi)始下載并安裝Java了,Colab下載各種東西的速度都很快,不用擔(dān)心網(wǎng)速的問(wèn)題~
3. 設(shè)置系統(tǒng)默認(rèn)jdk
!update-java-alternatives -s java-8-oracle
4. 測(cè)試Java是否安裝成功
!java -version
!javac -version
系統(tǒng)正確輸出Java版本即表示安裝成功。
5. 查看Java的安裝路徑
Java是安裝完了,但是我們有時(shí)候還需要在代碼中聲明Java的安裝路徑才能調(diào)用Java。如何找到Java的安裝路徑呢?大家可以參考下面這篇文章:
https://www.cnblogs.com/oxspirt/p/6294754.html
例如我查找到的安裝路徑是:/usr/lib/jvm/java-8-oracle/jre/bin/java
運(yùn)行自己的代碼
好了,各種準(zhǔn)備工作都做好了,我們?nèi)绾卧贑olab上直接運(yùn)行自己寫好的代碼呢?其實(shí)很簡(jiǎn)單,就跟在自己電腦上一樣,使用命令!python XXX.py就可以了!詳細(xì)步驟如下:
1. 將.py文件和其它必要的文件上傳到Google Drive
上傳速度很快,不用擔(dān)心網(wǎng)速問(wèn)題~
2. 將工作目錄切換到.py文件所在目錄
import os
os.chdir('drive/Colab/Your project folder')
不放心的話切換完之后用!ls命令看一下是不是到了指定目錄下。
3. 運(yùn)行代碼
!python XXX.py
4. 注意事項(xiàng)
-
Linux系統(tǒng)下文件路徑使用'/'而不是'\'
-
如果需要記得在代碼里聲明第三方軟件或庫(kù)的路徑,例如我在使用Stanford Parser工具的時(shí)候,聲明模型和Java的路徑:
# 添加stanford環(huán)境變量 (content是系統(tǒng)根目錄下的一個(gè)文件夾)
os.environ['STANFORD_PARSER'] = '/content/drive/Stanford_NLP/jars/stanford-parser.jar'
os.environ['STANFORD_MODELS'] = '/content/drive/Stanford_NLP/jars/stanford-parser-3.9.1-models.jar' # 添加Java環(huán)境變量 os.environ['JAVAHOME'] = "/usr/lib/jvm/java-8-oracle/jre/bin/java" 總結(jié)
-
可以把Colab看成是一臺(tái)帶有GPU的Ubuntu虛擬機(jī),只不過(guò)我們只能用命令行的方式操作它。你可以選擇執(zhí)行系統(tǒng)命令,亦或是直接編寫運(yùn)行python代碼。
-
掛載完Google Drive,會(huì)在虛擬機(jī)里生成一個(gè)drive文件夾,直接將Google Drive當(dāng)成是一塊硬盤即可。訪問(wèn)drive文件夾里的文件,就是在訪問(wèn)你的Google Drive里的文件。
-
Colab最多連續(xù)使用12小時(shí),超過(guò)時(shí)間系統(tǒng)會(huì)強(qiáng)制掐斷正在運(yùn)行的程序并收回占用的虛擬機(jī)。(好像再次連接到虛擬機(jī)后,虛擬機(jī)是被清空的狀態(tài),需要重新配置和安裝庫(kù)等等)
-
?
好了,Google Colab的使用方法就先介紹到這里了,筆者也是剛接觸不久,發(fā)現(xiàn)國(guó)內(nèi)介紹Colab的博文還是少了點(diǎn),所以寫下了這篇教程與大家分享。文中若有問(wèn)題之處,還請(qǐng)大家多多包涵,可以在評(píng)論區(qū)指出我的錯(cuò)誤,互相學(xué)習(xí): )
參考資料
官方教程
官方FAQ
https://www.cnblogs.com/smiler/p/6939913.html
https://www.cnblogs.com/oxspirt/p/6294754.html
作者:Caria_W
鏈接:https://www.jianshu.com/p/000d2a9d36a0
來(lái)源:簡(jiǎn)書(shū)
簡(jiǎn)書(shū)著作權(quán)歸作者所有,任何形式的轉(zhuǎn)載都請(qǐng)聯(lián)系作者獲得授權(quán)并注明出處。
總結(jié)
以上是生活随笔為你收集整理的Google Colab——用谷歌免费GPU跑你的深度学习代码的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Google Colab使用教程
- 下一篇: 使用colab平台进行训练