前陣子跟一位在 Amazon 擔任過軟體工程師的朋友一起討論演算法,我打開 Google Colab 的網頁、很快速地就開啟了可以寫 Python 的環境,他看到網頁居然告訴我,他寫程式這麼久,還不知道 Google Colab 是什麼!我大為震驚,立刻就努力向他分享這個寫程式老手跟新手都好用的利器。
如果你是資料科學家、或者工作常用到 Python,Google Colab 是讓你方便寫程式的超讚平台!身為一個 Google Colab 愛用者,我想在這篇文章分享我超愛 Colab 的 5 個理由,希望能推坑你一起使用這個好工具。

目錄
雲端運算:爛電腦也能跑深度學習
Google 的 Colab 是一個讓你用網頁瀏覽器就能寫 Python 程式、並且執行的平台,如果你用過 Jupyter Notebook,它就是在雲端的 Jupyter Notebook!Colab 免費提供你雲端的運算資源,不管你的電腦有多爛,只要能打開 Chrome 或 Safari 等等任一個瀏覽器,你就可以讓 Google 的雲端電腦為你執行 Python 程式,要進行複雜的運算也不怕筆電燒起來。
更重要的是,Colab 提供免費的 GPU 讓你高效運算機器學習與深度學習演算法。筆者參加過的所有 資料科學競賽,全都是靠 Colab 提供的 GPU 來實作機器學習模型,只用免費資源、就能取得很好的運算效能,打比賽超有效率。
(筆者 2021 年參加的 玉山銀行中文手寫影像辨識競賽,就是完全用 Colab 打比賽的範例)
當然,免費版本 Colab 每天可以用的 GPU 運算量是有上限的,在我的經驗裡,不拿 Colab 來實際做產品、只是拿來自己實驗深度學習演算法的話,免費版已經夠用。如果你需要的運算量真的太高,花點小錢訂閱 Colab Pro 就能取得更多運算額度還有更快的 GPU 與 TPU,很划算。

不用費工部署環境
你還記得自己還是 Python 新手的時候、想要使用某個套件卻不知道怎麼安裝的窘境嗎?或者,即使找到安裝套件的指令,居然還跳出來安裝失敗的訊息、令人不知所措?
剛開始學 Python 的新手,好不容易鼓起勇氣在終端機(Terminal)輸入 pip install
或 conda install
,結果出現了一堆一下紅一下黃的滿滿錯誤訊息,一時不知道從何解決起,十分令人無助啊。

Google Colab 預先幫你安裝好大家最常用的 Python 套件,幫你解決了一半以上的煩惱,讓 Python 新手可以不用在剛起步就學習環境部署的麻煩事。數據分析常用的 Pandas 與 Numpy、資料視覺化好用的 Seaborn 與 Matplotlib、還有機器學習必備的 xgboost 或 Tensorflow,這些都是 Colab 預先安裝好的套件,你可以在 Colab 內執行 !pip freeze
這行指令,一眼看出 Colab 已經幫你安裝好了哪些好東西,根本不用煩惱套件安裝、可以安心動手寫程式。

令我非常羨慕的是,現在已經有 Python 的教學書籍,開始採用 Google Colab 當作書中執行 Python 的範例了。洪維恩老師 今年出版的《Python 教學手冊》 開宗明義就使用 Colab 當作程式碼示範,在這本書不再需要冗長地從怎麼安裝 Python 與套件學起,第一章可以立即學會用 Python 語法寫出第一行程式碼、馬上獲得成就感,筆者好豪在讀這本書的時候都想著:要是我以前初學 Python 的時候,老師也用 Colab 教學、該有多好!
撰寫資料科學報告的利器
在 官方介紹 中,Google 將 Colab 稱為「可執行程式的文件」(”Executable Document”),我認為是簡潔又貼切的描述!
如果你做的是資料科學工作,你肯定會對 Colab 愛不釋手。Colab 維持 Notebook 的強大的互動式計算環境特色,把文字(Markdown)、Python 程式碼、還有程式輸出與圖表都放在同一個頁面裡面,呈現出的頁面同時是程式也是文件。你在寫完程式、做好數據分析之後,可以在同個頁面用文字寫下你的分析洞見、配合陳列在一旁的圖表,很快速地 Email 給你的同事,做資料科學報告真的超級方便!

與其他 Google 服務整合
你有用 Google 雲端硬碟(Drive)儲存資料嗎?或者是用 Google 版本的 Excel(Google Sheet)來整理你常用的表格數據?這些存在 Google 服務範疇的檔案跟資料表格都可以傳送到 Colab 裡面使用!
只要加幾行簡單的程式碼,你就可以從 Google Drive 取得你要用的檔案、然後透過 Python 程式讀取;也可以匯入 Google Sheet 的表格資料,然後用你最愛的視覺化套件(例如 Matplotlib)畫出美麗的圖表。
(在 Colab 從其他服務取用檔案與數據的程式碼範例:Google Drive、Google Sheet)

筆者好豪前陣子有個迷你 Side Project:朋友手上有一堆 CSV 表格資料,每個 CSV 檔案都要做相同的資料轉換,最後把結果整理到同一個 Excel 檔案。我當然很樂意幫忙寫出資料轉換的 Python 程式碼,但是,我朋友對程式設計並不熟悉,我不能只給他寫好的 Python 程式碼、叫他在自己電腦執行,因為他還要部署環境、安裝套件,對不熟悉程式的人來說真的太麻煩了。
因此,這項任務用 Colab 來達成再適合不過了!我選擇把程式碼全放在 Colab 上,朋友只需要把所有 CSV 都放上他自己的 Google Drive,然後在 Colab 簡單地按下一個「執行」按鈕,Colab 就會把資料轉換的 Excel 結果儲存回他的 Google Drive。一切流程即使完全不懂程式設計也能完成,Colab 跨服務整合的功能真的太好用了。
不只是 Python,還可以執行 Command Line 跟「魔法」指令
不管任何任務,多少會遇到需要搬運、刪除檔案、或者創建新資料夾這些操作檔案的動作,雖然用 Python 的 os
或 Pathlib
可以做到這些動作,但通常使用 Command Line (命令列)的 rm
、mv
、或 mkdir
等指令寫起來會更簡短。
Colab 其中一個厲害的地方就是,你除了可以執行 Python、也能執行 Command Line,只要在 Command Line 指令加上驚嘆號就能做到,像是 !mkdir
。你可以在 Colab 裡 Python 程式碼寫到一半的時候,突然加進幾行 Command Line 來操作檔案,完成後,再讓 Python 程式碼接著寫下去,Python 與 Command Line 可以無痛切換。更厲害的是,Colab 甚至讓你在同一段程式碼裡 Python 和 Command Line 能夠 混合使用,例如,可以把 !ls
輸出的內容存進 Python 變數裡。
此外,Colab 還有「魔法」指令(Magic Command),這個指令的寫法是在最前面加上 %
或 %%
符號,例如 %timeit
,Magic 為 Colab 補充一些方便的功能。筆者最常用的功能有二:
%%timeit
:算出你的程式碼區塊花多少時間執行,分析你的演算法效率時很好用%run my_script.py
:執行你的另一個 Python 程式,如果你的程式還需要呼叫另一個程式,就需要使用這個 Magic 指令
結語:趕快開始用用看 Colab!
如果你是 Python 新手,推薦你立刻開始用 Colab,因為開始使用 Google Colab 一點門檻都沒有!到 Colab 網站、登入你的 Google 帳號、然後新增一個 Notebook 筆記本,你就已經可以開始寫你的 Python 程式。不用花時間安裝 Python、不用想辦法安裝套件,在雲端怎麼玩 Python 都不怕會搞壞自己的電腦,再也沒有藉口阻止你學習 Python 了!
而如果你已經有使用 Python 的經驗,Command Line 與 Magic 指令、還有跨 Google 服務整合的功能會讓你的程式更加多元。此外,Colab 提供的 GPU 還有 Notebook 的程式碼加文件整合特色會讓你成為更有效率的資料科學家。
總之,不管你是 Python 的新手還是老手,馬上開始使用 Colab 吧!
本文分享的 Google Colab 特色還看不過癮的話,Analytics Vidhya 這篇文章 講了更多厲害的 Colab 功能,值得一讀。
筆者好豪過去有多篇文章都是用 Colab 來當作 Python 程式示範,推薦你繼續閱讀以下文章,我很樂意跟你分享我如何使用 Colab:
- Python Pandas 的 Lambda 匿名函式:五個實用技巧
- A/B Testing:「偷看結果」將成為最大的錯誤
- 跟上客戶的生活節奏(Python 資料視覺化)
- 從《天堂 M》手遊機率爭議學會二項式檢定與 P-value 解讀
最後,歡迎追蹤好豪的 Facebook 粉絲專頁 與 Threads 帳號,我會持續分享 Python 以及資料科學的學習筆記與程式碼;也可以點選下方按鈕,分享給對正在精進資料科學的朋友們。