雙十一剛過,你的手還好嗎?這些Colab技巧幫你愉快地薅谷歌羊毛
Google Colab 是一個免費的 Jupyter 環境,用戶可以用它創建 Jupyter notebook,在瀏覽器中編寫和執行 Python 代碼,以及其他基于 Python 的第三方工具和機器學習框架,如 Pandas、PyTorch、Tensorflow、Keras、Monk、OpenCV 等。
Google Colab 的好處在于,不需要任何配置就能直接上手使用,并提供免費的 GPU,你可以和任何人共享實時代碼、數學公式、數據可視化結果、數據處理、數值模擬、機器學習模型等各種項目。
以前,機器之心也曾經介紹過很多關于 Colab 的知識點,比如:20種小技巧,玩轉Google Colab。
本文將介紹如何用 Python 使用 Google Colab,以及一些 Colab 使用技巧。
項目地址:https://github.com/towardsai/tutorials/tree/master/google_colab_tutorial
為什么大家都愛 Colab
Colab 的優點包括:
- 提供了免費的 Jupyter notebook 環境;
- 帶有預安裝的軟件包;
- 完全托管在谷歌云上;
- 用戶無需在服務器或工作站上進行設置;
- Notebook 會自動保存在用戶的 Google Drive 中;
- 提供基于瀏覽器的 Jupyter notebook;
- 完全免費,且提供 GPU 和 TPU(Pro 用戶可以使用更多資源,但需要付費);
- 支持 Python 2 和 Python 3;
- 提供兩種硬件加速器:GPU 和 TPU。
第一步:啟動 Google Colab
我們可以使用 Colab 在 Web 瀏覽器上直接運行 Python 代碼,使用指南:https://mktg.best/d7b6u。
啟動窗口隨之打開,彈窗中提供了多項功能:

它提供了創建 notebook 以及從不同來源上傳和選擇的選項,比如 GitHub、Google Drive 或本地計算機。
從 GitHub 上傳 Notebook
我們可以使用項目 URL,或者搜索組織和用戶等方法,直接從 GitHub 上傳 Python 代碼。
使用 URL 的步驟上傳項目的步驟如下圖所示:
- 啟動 Google Colab
- 從彈框中選擇 GitHub 這一項。

輸入 GitHub 項目 URL 并搜索以獲取代碼:

將完整代碼一鍵上傳到 Google Colab notebook:

同樣地,用戶可以通過按名稱、日期、所有者或者修改日期過濾保存的 notebook,直接從 Google Drive 上傳代碼。

從 Kaggle 上傳數據
(1) 從 Kaggle 生成 API Token
來自 Kaggle 的數據可以直接上傳到 Colab,不過這需要 Kaggle 的 API Token 才能完成數據導入,步驟如下:
- 打開 Kaggle
- 轉至「我的賬戶」
- 向下滾動到「API」部分

- 如果需要,先單擊「Expire API Token」以刪除先前的 token
- 點擊「Create New API Token」,生成一個新的 token 并下載一個名為「kaggle.json」的 JSON 文件
「kaggle.json」文件包含用戶名和密鑰,如下所示:

(2) 從 Kaggle 上傳數據的步驟
將「kaggle.json」文件保存在本地計算機上。
安裝 Kaggle 軟件包:
- !pip install -q kaggle
導入包:
- from google.colab import files
上傳本地文件「kaggle.json」:
- files.upload()

檢查 Colab notebook 是否與 Kaggle 正確連接:
- !kaggle datasets list

從 Kaggle 下載任意比賽數據:
- !kaggle competitions download -c competitive-data-science-predict-future-sales

Kaggle 數據將在 Colab 中下載和上傳,如下所示:

從 Google Drive 中讀取文件
Colab 還提供從 Google Drive 讀取數據的功能。
導入包:
- import globimport pandas as pdfrom google.colab import drive
掛載 Google Drive:
- drive.mount('/gdrive')
這一步要求填寫 Google Drive 的授權碼:
- 授權碼輸入框
- 單擊鏈接并生成授權碼
- 從 Google Drive 讀取 CSV 文件
- file_path = glob.glob("/gdrive/My Drive/***.csv")for file in file_path:
- df = pd.read_csv(file)
- print(df)

將運行時硬件加速器設置為 GPU
Google Colab 提供免費的 GPU 硬件加速器云服務。在機器學習和深度學習中需要同時處理多個計算,高性能 GPU 的價格很高,但非常重要。
GPU 通過并行化提供優秀的性能,可在一次調用中啟動數百萬個線程。盡管與 CPU 相比,GPU 的 clock speed 較低,且缺少多核管理功能,但 GPU 的表現通常比 CPU 好。
(1) 在 Colab 中設置 GPU 硬件加速器
設置步驟如下:
- 選擇 Runtime → Change runtime type
- 在彈出窗口中選擇「GPU」

(2) 檢查 Colab 中 GPU 的詳細信息
導入重要的包:
- import tensorflow as tffrom tensorflow.python.client import device_lib
檢查 GPU 加速器
- tf.test.gpu_device_name()
檢查用于 GPU 的硬件:
- device_lib.list_local_devices()

(3) 使用 GPU 的代碼示例
在未選擇運行時 GPU 的情況下檢查可用 GPU 的數量,使其設置為「None」。
- import tensorflow as tfno_of_gpu = len(tf.config.experimental.list_physical_devices('GPU'))print("Total GPUS:", no_of_gpu)
硬件加速器為 None,因此 GPU 數量的值為 0。
將運行時硬件加速器設置為 GPU:

- import tensorflow as tfno_of_gpu =len(tf.config.experimental.list_physical_devices('GPU'))print("Total GPUS:", no_of_gpu)
硬件加速器為 GPU,因此 GPU 數量值為 1。
在 GPU 上執行張量乘法:
- try:
- with tf.device('/device:GPU:1'):
- tensor1 = tf.constant([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]])
- tensor2 = tf.constant([[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]])
- result = tf.matmul(tensor1, tensor2)
- print(result)
- except RuntimeError as exception:
- print(exception)

張量乘法結果。
將 GitHub repo 復制到 Google Drive
GitHub repo 代碼可以復制和存儲到 Google Drive 中,具體步驟如下:
掛載 Google Drive
- from google.colab import drive
- drive.mount('/content/gdrive')
進入 Google drive,創建目錄「project」。
- %cd gdrive/My Drive/mkdir project%cd project/
復制 GitHub repo,例如:
- !git clone https://github.com/saniyaparveez/youtube_video_type_prediction.git

檢查復制的項目:
- !ls

Colab 魔法
Colab 提供許多有趣的 trick,包括多個可以執行快速操作的命令,這些命令通常使用 % 作為前綴。
(1) Colab 魔法命令列表
- %lsmagic
(2) 本地目錄
- %ldir
(3) 獲取 Notebook 歷史
- %history
(4) CPU 時間
- %time

(5) 系統運行多久?
- !uptime
(6) 展示可用和已用的內存
- !free -hprint("-"*100)
(7) 展示 CPU 產品規格
- !lscpuprint("-"*70)

(8) 列出所有運行虛擬機進程
- %%shecho "List all running VM processes."ps -efecho "Done"

(9) 在 HTML 中嵌入文本
- %%html<marquee>Towards AI is a great publication platform</marquee>
(10) 設計 HTML 格式
- #@title Personal Details#@markdown Information.Name = 'Peter' #@param {type: "string"}Age = 25 #@param {type: "slider", min: 1, max: 100}zip = 1234 #@param {type: "number"}Date = '2020-01-26' #@param {type: "date"}Gender = "Male" #@param ['Male', 'Female', 'Other']#@markdown ---print("Submitting the form")print(string_type, slider_value, number, date, pick_me)print("Submitted")
在 Google Colab 中生成 HTML 格式。
繪圖
Google Colab 還可用于數據可視化。以下代碼和圖展示了 Google Colab 對一個以上多項式的繪圖,Y = X³+X²+X。
- x = np.arange(-10,10)y = np.power(x,3)y1 = np.power(x,3) + np.power(x,2) + xplt.scatter(x,y1,c="red")plt.scatter(x,y)

以下代碼和圖用于生成熱圖:
- import matplotlib.pyplot as pltimport numpy as npimport seaborn as snslength = 10data = 5 + np.random.randn(length, length)data += np.arange(length)data += np.reshape(np.arange(length), (length, 1))sns.heatmap(data)plt.show()

Google Colab 中的 TPU
Google Colab 使用 TPU(張量處理單元)進行 Tensorflow 圖上的加速。TPU 是谷歌開發的、專為神經網絡機器設計的 AI 加速器專用集成電路 (ASIC)。
TPU 具備優秀的 teraflop 配置、浮點運算性能等。每個 TPU 的計算能力達到每秒 180 萬億次浮點運算(180 teraflops),擁有 64 GB 的高帶寬內存。
(1) 在 Colab 中設置 TPU
在 Google Colab 中設置 TPU 的步驟如下:
運行時菜單 → 更改運行時

選擇 TPU 硬件加速器
(2) 確認在 TPU 硬件加速器上運行
這需要 TensorFlow 包。以下代碼和實現可以確認 Colab 是否設置 TPU 加速器:
- import tensorflow as tf
- try:
- tpu = tf.distribute.cluster_resolver.TPUClusterResolver()
- print('Running on TPU', tpu.cluster_spec().as_dict()['worker'])
- except ValueError:
- print('Exception')

如果 TPU 未設置成功,則代碼會報錯。
結論
Google Colab 是一種 Jupyter notebook 環境,通過執行基于 Python 的代碼來構建機器學習或深度學習模型。Google Colab 完全免費(pro 版除外),并提供 GPU 和 TPU 硬件加速器,易于使用和共享。
本文列舉了 Google Colab 的使用技巧,希望能夠幫助大家更好地利用 Google Colab 資源。
資源:
- Google colab 實現:https://colab.research.google.com/drive/1ymIYzFg4Q7iBjnTut31aBqPHgOpkjHYD?usp=sharing
- Github repository:https://github.com/towardsai/tutorials/tree/master/google_colab_tutorial
【本文是51CTO專欄機構“機器之心”的原創譯文,微信公眾號“機器之心( id: almosthuman2014)”】



























