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/。