透過 Google Colaboratory 學習使用 Python 做機器學習等科學計算

Eric ShangKuan
6 min readOct 8, 2018

--

使用 Google Colab 進行以 Python 為基礎的專案研究與開發

前言

現在資料科學或是人工智慧(包含機器學習等)的話題正熱,而想要投入這些領域研究或開發應用的人也愈來愈多,也因為在這個領域上 Python 有著非常強大的生態系,所以也順勢把這個程式語言的熱門度持續推高(可參考 TIOBE 的排名)。然而,雖然 Python 程式語言上手容易,但因為在資料科學或機器學習的應用上,用到了大量第三方函式庫(例如:NumPy / SciPyTensorFlowKeras 等),在百家爭鳴、各有優勢、甚至是各種系統或硬體相依綁定的情況下,一個所謂「資料科學家」的工作環境,肯定會讓新手村的人把它搞成像一盤義大利麵一樣…

當然你可以使用 virtualenv、container、開 VM(有錢就是任性)等方式讓上述情況不會失控,但這又讓進入核心學習前,必須先修更多「基礎」了。這也說明了為什麼許多雲端平台的供應商都會提供適合 data science 或 deep learning 的虛擬機器映像檔了吧!

如果說有個環境可以讓你不用在一開始安裝一大堆軟體不挑作業系統能夠立即實驗/實作資料科學或機器學習專案、有著像 Jupyter Notebook 這樣的互動式環境在學習時不用預花太多成本(例如雲端虛擬機器費用)、如果還能支援加速硬體(如:GPU)或是自定環境的話,是不是會讓你有更大的動力把資料科學或是機器學習學得更好呢?

那你怎麼可以不試試看 Google Colaboratory 呢?

開始使用 Google Colaboratory

Google Colaboratory (以下簡稱 Google Colab)是一個基於 Jupyter Notebook 的免費服務(須註冊一個 Google 帳號、其餘部份至少撰文的此刻仍是免費),所以如果你曾經用過 Jupyter Notebook 來學習 Python 的話,那應該不必特別學習就能立即上手這個服務了,就算有些不熟悉,第一次使用的歡迎 notebook 也有完整的教學文件,有不會用的地方讀一下就可以了。

如何開始

如果你已經有了 Google 帳號,打開瀏覽器到 https://colab.research.google.com/ 就可以準備開始使用 Google Colab 了,一開始會要你建立一本新的 notebook 開始,從提示畫面中你也可以看到有多種方法能建立 notebook:

支援多種建立 notebook 的方法

你可以從官方提供的範例(EXAMPLES)Google DriveGitHub自行上傳(UPLOAD)等方式,或是直接用最下面的按鈕建立全新的 notebook,目前 Google Colab 支援 Python 2 及 Python 3 ,也預先安裝了一些常用的 Python 函式庫,所以你立即就能開始做一些事。

想知道 Python 是哪個版本,你可以在 notebook 中插入 !python -V 這樣的 system alias 來觀察,所以當然也可以使用 !pip list 觀察到底預裝了哪些函式庫,如果想用的還沒裝,當然可以 !pip install --upgrade xxx 來安裝,而 notebook 的運行環境也可以隨時重置(選單中的 Reset > Reset all runtime),所以不用怕把函式庫又搞爛。不過可能還是要注意一下是否有作業系統的相依性,Google Colab 的運行環境是 Ubuntu Linux。

值得一提的是,你所建立的 notebook 都是儲存在同 Google 帳號的 Google Drive 中,只有從 GitHub 直接載入的 notebook 本身是唯讀的(但可以執行內容,如果要修改可以存副本),所以其實你也可以直接從 Google Drive 中新增一個用於 Colab 的 notebook:

從 Google Drive 中新增 Google Colab 的 notebook

所以要將 notebook 分享給其它協作者也相當方便。

如何執行

Notebook 建立之後,你隨時可以使用選單中的 Edit > Notebook settings 來切換執行環境:

設定 notebook 用哪個 Python 版本、以及是使用加速硬體來執行

而當你在執行 notebook 中的程式碼時,Google Colab 會根據設定即時配置一個執行環境給你,或是根據這一頁說明及設定,在 notebook 的右上角切換連接到 local runtime 來執行。

你可以選擇使用 Google Colab 配置給你或是自架的執行環境

由於 Google Colab 服務的出發點是為了互動式的操作學習,所以資源都是動態分配的,如果需要執行大量(例如資料量大、需長時間計算)的計算資源,建議照著上述說明文件在自己的運算資源(如:本地伺服器或是雲端的虛擬機器環境等)建立可連接的執行環境。根據目前 Colab 所提供的 FAQ 文件說明,並沒有明確定義的 quota,只有提醒耗時的運算資源可能會被中斷。

例如你可以試著從 GitHub 上載入這本 notebook: https://colab.research.google.com/github/tensorflow/tpu/blob/master/tools/colab/fashion_mnist.ipynb 來試試看如何在 Google Colab 上的 notebook 使用 TPU 的環境。

其它的部份,就像是 Jupyter Notebook 一般,在 notebook 上執行程式碼的部份就可以立即得到執行結果:

使用 matplotlib 在 notebook 中畫圖,執行後立即呈現

開始了第一步,然後呢

當然最關鍵的還是要把 Python 還有你想投入的領域學習好呀,而關於 Google Colab 的平台特性或操作,都在它的 Welcome notebook 中寫得很詳盡,我就不必再騙篇幅了,如果想關注最新發展,可以在 twitter 上 follow @GoogleColab

--

--