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