因為自己作為苦逼的學生黨,學校又沒有實驗室,然後又入門了CV,伺服器太貴租不起,以上種種問題,哈哈哈,沒辦法,Google Colab成為了我的滿足我需求最好的平臺了。

然後也用了有一段時間了,也踩過許多坑,例如安裝各種包,框架,cuda,cudnn等等。正巧在小豆豆之目標檢測交流羣遇到了一些與我一樣需要依靠Google Colab的志同道合(苦逼)的朋友,也就借這個機會分享一些自己的使用心得,有不對或者不足的地方還望大家批評指正。


好了,進入正題。

基礎篇

首先,要使用Google的產品,翻牆是必須的吧。 然後點擊進入Google雲端硬碟,如下界面:

然後點擊新建--更多--Colaboratory,就會出現這個界面,

紅框可以修改頁面名稱,綠框點擊連接(點擊第一個:連接到託管代碼執行程序),但是連接之後並不是以及在GPU環境下,所以需要點擊藍框進行設置,

點擊籃框就會出現如下界面

然後就可以選擇GPU/TPU,最後只需要點擊保存就行了。

因為TensorFlow本身就是Google的所以也不需要安裝,直接用就行了,如何確定自己是否已經在GPU的環境下只需要輸入這段代碼就行了

import tensorflow as tf
tf.test.gpu_device_name()

---
/device:GPU:0

如果輸出和上面一樣的話就是已經在GPU環境下了。

接著是Pytorch, Pytorch的安裝和我們在Linux上安裝一樣,點擊官網選擇要環境。然後只需要將官網提供的代碼copy到我們的代碼塊中,並且在代碼前加上一個「!」點擊運行即可,如下

!pip3 install https://download.pytorch.org/whl/cu80/torch-1.0.0-cp36-cp36m-linux_x86_64.whl
!pip3 install torchvision

然後我們可以輸入官網提供的代碼作安裝的測試 如果有如下輸出就證明我們安裝成功

import torch
x = torch.empty(5, 3)
print(x)

tensor([[1.1790e-25, 0.0000e+00, 4.4842e-44],
[0.0000e+00, nan, 1.6255e-43],
[3.3587e-06, 5.2898e+22, 6.5625e-10],
[2.0804e+23, 8.2726e+20, 6.6715e-10],
[1.6993e-04, 2.7150e-06, 6.0611e-39]])

以上步驟如圖所示

運行如下代碼可以查看GPU顯存信息

!/opt/bin/nvidia-smi

如果要安裝其他的包,框架,或者某一版本的方法和我們在Linux環境下安裝幾乎沒有差別 只需要注意在運行前加上「!」,換計劃說你可以把Google Colab看成是一個Linux系統的頁面。


提高篇

如果利用GPU不運用自己本地的數據集,而是跑跑框架自帶的MNIST這些數據已經是夠了的。 如果要跑自己的數據集就需要將自己的數據先上傳到Google Colab雲盤上面去。

注意:如果是比較大的數據集,將本地數據上傳上去就需要安裝一個連接本地計算機與Google Colab的一個名為備份與同步的軟體,這時候你只需要選擇本地文件夾,然後點擊同步,然後只需等待即可。我本人上傳過CoCo,大概花了四五個夜晚吧,因為是去年暑期上傳的具體花費的時間也不太記得清楚了。

如果是比較小的數據集直接點擊桌面文件拖到Google Colab界面等待上傳即可。

然後上傳完數據,我們又要如何調用呢。 我們需要先運行這段代碼

!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}

運行這段代碼會跳出兩條鏈接你只需點擊然後將鏈接的內容輸入即可。這段代碼的目的是為了將頁面掛在到Google drive上。

然後只需要運行以下代碼

!mkdir -p drive
!google-drive-ocamlfuse drive
import os
import sys
os.chdir(drive/Colab Notebooks)

目的是進到我們需要到的目錄下,然後就可以在當前目錄下調用我的數據集


終極篇

咳咳,注意了接下來要放大招了

cuda/cudnn的安裝,直接貼鏈接Google Colab NVIDIA安裝

友情提醒:如果需要購買Google drive內存的朋友,在網頁上好像是不能用國內的銀行卡支付的,本人在這個問題上困擾了很久,最後解決的方法是本人在手機上下載了一個Google雲端硬碟App,然後利用蘋果APP Store綁定的銀行卡就可以用國內的銀行卡支付啦。


想到什麼補充什麼系列

Google Colab也有一些比較坑的地方,如下:

  1. 掛載只有12個小時,也就是說12小時之後你就需要重現掛載一次,所以就需要我們在進行模型訓練的時候記得要加上checkpoint,不然你如果訓練的模型超過12小時,Google斷開掛載你就白白浪費12小時啦。
  2. 每次使用都需要重新配置你上次自己安裝的環境,默認環境當然就不用啦。還有就是CUDA和Cudnn不需要重新配置(親測),我也不知道為什麼...歡迎指正。然後給大家安利一個方法,就是獨立出一個頁面把你要配的環境的代碼都寫在該頁面下,下次打開只需要運行所有單元格就可以再開一個頁面來跑你需要跑的程序啦。
  3. 模型在訓練的過程中 有可能會出現連接中斷需要重新連接的情況,不要怕點擊重新連接就行,如果經常出現推薦給大家一個腳本神器按鍵精靈,人不在電腦邊上只需要F10啟動腳本左鍵點擊功能。
  4. 如果電腦自動關機了,或者是自動更新什麼的,只要時間不是很長,你只需要重啟,恢復網頁還是可以繼續訓練的,比較訓練是掛載在Google上,但是時間久了也就要重新訓練了。
  5. 如果是斷網了也只需要聯網點擊重新連接即可,同上如果斷網太久也就只能重新訓練了

推薦閱讀:

相關文章