機器學習愛好者的福音,谷歌為我們免費提供了編譯環境和GPU。

最近瀏覽文章,發現谷歌在其雲盤上免費提供了類似於ipython-notebook的功能,可以在上面直接編寫程式碼和執行,並且提供GPU能夠加速程式碼的執行。

首先,都有一個自己的谷歌賬號

登入谷歌雲盤,首先建立一個資料夾,待會會用。

機器學習愛好者的福音,谷歌為我們免費提供了編譯環境和GPU。

進入到自己剛建立的資料夾,如上圖的drive資料夾,點選新建,選擇更多,在彈出來的選項裡,起初是看不到Colaboratory這一項的。之後進入關聯更多應用,在裡面搜尋Colaboratory之後選擇關聯。我們就能在更多里彈出的條項裡就能找到了。

機器學習愛好者的福音,谷歌為我們免費提供了編譯環境和GPU。

進入Colaboratory,設定環境

點選進入之後,頁面是這樣的

機器學習愛好者的福音,谷歌為我們免費提供了編譯環境和GPU。

介面類似ipython-notebook的形式,可以邊輸入邊執行。但想要執行深度學習的相關演算法還得配置下環境。點選修改選項,選擇裡面的筆記本設定。

機器學習愛好者的福音,谷歌為我們免費提供了編譯環境和GPU。

在彈出的對話方塊裡我們可以選擇使用Python2還是python3,以及選擇使用GPU。

機器學習愛好者的福音,谷歌為我們免費提供了編譯環境和GPU。

編寫程式碼之前的工作

雖然環境是設定好了,但在執行之前,還得設定些東西。把下面一段程式碼放進去直接執行就行了。

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

點選執行,在過程中會提供一個連結和一個視窗,如下

機器學習愛好者的福音,谷歌為我們免費提供了編譯環境和GPU。

點選連結,此時就能用到先前說的谷歌賬號了,按步驟進行,之後我們會得到一串程式碼。

機器學習愛好者的福音,谷歌為我們免費提供了編譯環境和GPU。

將這串程式碼複製,貼上到先前的窗口裡,按Enter鍵繼續。之後會繼續要求我們驗證

機器學習愛好者的福音,谷歌為我們免費提供了編譯環境和GPU。

之後掛載當前檔案所在資料夾,使用如下程式碼:

!mkdir -p drive

!google-drive-ocamlfuse drive -o nonempty

編寫程式碼

本文以keras編寫的CNN來進行手寫體識別,首先安裝keras(不管本機安裝與否,在這裡都需要這一步)

!pip install -q keras

機器學習愛好者的福音,谷歌為我們免費提供了編譯環境和GPU。

機器學習愛好者的福音,谷歌為我們免費提供了編譯環境和GPU。

機器學習愛好者的福音,谷歌為我們免費提供了編譯環境和GPU。

點選執行,結果如下:

機器學習愛好者的福音,谷歌為我們免費提供了編譯環境和GPU。

我們可以看看上面紅線標註的時間,總的執行時間不超過1分鐘,而若是在配置較差的筆記本上執行,那簡直是天地之別。好了具體就介紹到這裡了。

後記

據說,Colaboratory也是可以在一個notebook中進行使用的,不過我沒有試過,感覺在瀏覽器上挺好用。喜歡學習機器學習有沒有高階裝置的同學,谷歌提供的這個選擇值得一試。