20種小技巧,玩轉Google Colab
Google Colab 給廣大的 AI 開發者提供了免費的 GPU,你可以在上面輕松地跑 Tensorflow、Pytorch 等深度學習框架。但關于 Colab 的使用技巧你又掌握了多少呢?這篇文章將介紹 20 種 Colab 使用技巧,幫你提高使用效率。

1. 便簽本 Notebook
當我們在 colab 上嘗試一些臨時的東西時,我們會創建一堆雜亂、沒有標題的 Notebook。

為了解決這個問題,你可以把以下鏈接加入書簽:https://colab.research.google.com/notebooks/empty.ipynb
這將打開一個特殊的 scratch notebook,并且你對該 notebook 所做的任何更改都不會保存到你的主目錄中。
2. 單元計時
通常,我們手動計算一段代碼的開始時間和結束時間之間的差值來衡量所花費的時間。Colab 提供了內置功能來執行此操作。在執行了一個單元(cell)之后,將鼠標懸停在單元運行圖標上,你將獲得代碼執行時間的估計值。

3. 運行某個單元的一部分
你也可以運行某個單元的一部分,通過選擇單元格并點擊 Runtime 索引到 Run Selection 按鈕或使用鍵盤快捷鍵 Ctrl + Shift + Enter。

4. Jupyter Notebook 快捷鍵
快捷鍵為編程帶來了便利,但 Jupyter Notebook 中的快捷鍵不能直接在 Colab 中使用。不過,這里有一個關系映射表來解決這一問題。從中可以看出,你只需要在 Jupyter 的快捷鍵前面加上「Ctrl +M」就能在 Colab 中使用。此規則適用于大多數快捷鍵。

以下是一些特例,其快捷方式已完全更改或保持不變。

5. 跳轉到類定義
與 IDE 相似,你可以通過按 Ctrl 鍵,然后單擊一個類名來跳轉到類定義。例如,在這里我們通過按 Ctrl 并單擊 Dense 類名來查看 Keras 中 Dense 層的類定義。

6. 在 GitHub 中打開 Notebooks
Google Colab 團隊提供了官方的 Chrome 擴展程序。使用 colab 時,可以直接在 GitHub 上打開 notebooks。
擴展程序下載地址:https://chrome.google.com/webstore/detail/open-in-colab/iogfkhleblhcpcekbiedikdehleodpjo
安裝后,單擊 GitHub notebook 的 colab 圖標直接將其打開。

或者,你也可以手動打開 GitHub notebook,將 github.com 替換為 colab.research.google.com/github 即可。
https://github.com/fastai/course-v3/blob/master/nbs/dl1/00_notebook_tutorial.ipynb
替換為
https://colab.research.google.com/github/fastai/course-v3/blob/master/nbs/dl1/00_notebook_tutorial.ipynb
甚至更簡單的方法是用 githubtocolab.com 替換 github.com。
https://github.com/fastai/course-v3/blob/master/nbs/dl1/00_notebook_tutorial.ipynb
替換為
https://githubtocolab.com/fastai/course-v3/blob/master/nbs/dl1/00_notebook_tutorial.ipynb
7. 從 Colab 運行 Flask 應用
使用 flask-ngrok 庫(https://github.com/gstaff/flask-ngrok),你可以輕松地將運行在 colab 上的 Flask Web 應用程序轉換為一個 demo 原型。
首先,你需要安裝 flask 和 flask-ngrok。
- !pip install flask-ngrok flask==0.12.2
然后,你只需要將「flask app」對象傳遞給「run_with_ngrok」函數,它將在啟動服務器時公開 ngrok 端點。
- from flask import Flaskfrom flask_ngrok import run_with_ngrok
- app = Flask(__name__)run_with_ngrok(app)
- @app.route('/')def hello(): return 'Hello World!' if __name__ == '__main__': app.run()

8. 在 Tensorflow 版本之間切換
你可以很容易地在 Tensorflow 1 和 Tensorflow 2 之間切換。
要切換到 Tensorflow 1.15.2,請使用以下命令:
- %tensorflow_version 1.x
要切換到 Tensorflow 2.2,請運行以下命令:
- %tensorflow_version 2.x
你需要重新啟動才能生效。出于性能考慮,Colab 建議使用預安裝的 Tensorflow 版本,而不是用 pip 命令安裝它。
9. Tensorboard 集成
Colab 還提供了一個命令,可以直接從 notebook 使用 Tensorboard。你只需要使用 --logdir 設置日志目錄位置。
你可以從官方 notebook 學到它的使用方法:https://colab.research.google.com/github/tensorflow/tensorboard/blob/master/docs/tensorboard_in_notebooks.ipynb。
- %load_ext tensorboard%tensorboard --logdir logs

10. 查看資源限制
Colab 為他們的免費版本和專業版本提供了以下規格。根據自己的情況,如果你需要更好的運行時間、GPU 和內存,你可以以每月 10 美元的價格切換到專業版本。

可以通過運行以下命令查看你已經被分配到的 GPU:
- !nvidia-smi
有關 CPU 的信息,可以運行此命令:
- !cat /proc/cpuinfo
此外,你還可以通過運行以下命令查看 RAM 容量
- import psutilram_gb = psutil.virtual_memory().total / 1e9print(ram_gb)
11. 使用交互式 shell
Colab 中沒有內置的交互終端。但是可以使用 bash 命令以交互方式試用 shell 命令。只需運行此命令,你將獲得交互式輸入。
- !bash
現在,你可以在給定的輸入框中運行任何 shell 命令。

要退出 shell,只需在輸入框中鍵入 exit。

12. 當前的內存和存儲使用情況
Colab 提供了 RAM 和磁盤使用情況的指示器。如果將鼠標懸停在指示器上,將彈出一個窗口,其中包含當前內存和存儲使用情況和總容量。

13.「Open in Colab」 標志
你可以使用如下 markdown 代碼在 README.md 或 jupyter notebooks 中添加「Open in Colab 」標志。

在這段代碼中,我們正在加載 SVG 圖片,然后將其鏈接到 colab notebook。
- [](https://colab.research.google.com/notebooks/basic_features_overview.ipynb)
14. Pandas 交互表
Colab 提供了一個 notebook 擴展,用于向 pandas dataframes 添加交互式排序和過濾功能。要使用它,請運行以下代碼。
- %load_ext google.colab.data_table
在加載下面的擴展之后,你可以看到常規的 pandas dataframe 和交互式 dataframe。


15. 設置 Conda 環境
如果將 miniconda 用作 python 環境管理器,你可以通過在 notebook 頂部運行以下命令,在 colab 上對其進行設置。
- # Download Miniconda installation script!wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh# Make it executable!chmod +x Miniconda3-latest-Linux-x86_64.sh# Start installation in silent mode!bash ./Miniconda3-latest-Linux-x86_64.sh -b -f -p /usr/local# Make conda packages available in current environmentimport syssys.path.append('/usr/local/lib/python3.7/site-packages/')
執行完單元后,你可以照常使用 conda 安裝軟件包。
- !conda install -y flask
16. 從命令行管理 Colab Notebooks
你可以使用名為 colab-cli 的庫輕松創建 colab notebooks 并將其與本地 notebooks 同步:https://github.com/Akshay090/colab-cli

17. 運行后臺任務
在某些情況下,我們需要先啟動一些 Web 服務器或后臺任務,然后才能執行常規程序。
要運行后臺任務,請使用「nohup」命令,然后使用常規的 shell 命令,并在末尾添加「&」使其在后臺運行。這樣確保可以在之后的 notebook 中運行單元,而不會被后臺任務終止。
- !nohup bash ping.sh &
18. 提醒訓練完成
如果你要執行耗時較長的任務(例如訓練模型),你可以將 Colab 設置為在完成后發送桌面通知。
要啟用此功能,請轉到「Tools ⮕ Settings ⮕ Site」,然后啟用「Show desktop notifications」復選框。

這時將彈出一個窗口,以啟用瀏覽器通知。只要接受它,即使你在另一個選項卡、窗口或應用程序上,colab 也會在任務完成時通知你。
19. 運行 javascript 代碼
使用 %%javascript 命令運行 javascript 代碼。

20. 在 Colab 上運行 VSCode
你可以在 Colab 上運行完整的 VSCode。請參考文檔:https://amitness.com/vscode-on-colab/。





























