Colab(Colaboratory)是谷歌提供的一個免費的可用於機器學習編程的雲端筆記本,提供了免費的GPU與TPU雲端加速設備,解決了普通電腦顯卡配置不足的問題,官網網址:歡迎使用 Colaboratory
Colab爲谷歌提供的雲平臺,所以需要一些操作才能使用,該平臺可以運行TensorFlow、Keras、Theano、PyTorch代碼,唯一的缺點就是容易掉線,導致代碼運行到一半時停止,不過掉線的情況與自家網速有關,也與時間有關,可參考西方國家與我國的時差,儘量避免在傍晚與晚上使用,博主親測……
本篇博文內容較雜,整合了博主在使用Colab時的一些使用技巧,可以通過 Ctrl + F 搜索關鍵字,查找需要的內容
新建筆記本
在起始頁菜單欄選中“文件”,選擇“新建筆記本”,可在新建的筆記本中下載依賴、庫等,執行相關代碼
執行代碼
將代碼輸入代碼框中,點擊代碼框左側上方的“播放”按鈕執行
安裝相關庫和授權
from google.colab import drive
drive.mount('/content/drive/')
其中 ‘/content/drive/’ 可自行定義位置名稱
代碼執行後,需要手動跳轉至執行結果的網址,登錄谷歌雲盤,獲取授權碼,將其輸入執行結果的輸入框中,回車確認
此時該筆記本掛載至谷歌雲盤,Colab將自動保存所有輸入
該部分只需在筆記本第一次使用時添加運行,再次打開筆記本時無需對其進行任何操作
安裝依賴
!pip install -q keras
其中keras可替換爲其他依賴,不過Colab中keras已經提供,不需要再次下載(同樣torch也被提供,不需要下載)
運行上傳的代碼
!python3 "/content/drive/My Drive/Colab Notebooks/test.py"
上傳的代碼若保存在谷歌雲盤中,需要在筆記本中裝載Google雲盤(如圖所示),之後纔可見上傳的代碼文件,"/content/drive/My Drive/Colab Notebooks/test.py" 爲文件路徑,可自行修改
推薦將代碼直接複製粘貼至筆記本提供的代碼框中,直接運行,自動保存至谷歌雲盤
也可將代碼上傳至筆記本中,使用同樣的命令實現代碼運行,但該部分的代碼在筆記本關閉後將會被系統清除相關文件
添加GPU/TPU
在筆記本菜單欄中的“代碼執行程序”中選擇“更改運行時類型”,添加GPU/TPU加速硬件
Python版本問題
Colab官方提出將在今後某一天不再使用Python2版本,因此對於其中運行的代碼,最好使用Python3版本
對於已有的Python2版本代碼,Python官方提供了Python2代碼自動轉Python3代碼的程序方法,官網教程如下:2to3 - 自動將 Python 2 代碼轉爲 Python 3 代碼
若電腦中下載過Python,一般會自帶有 2to3 程序,只需在命令行中輸入以下命令,2to3 程序將會自動轉換代碼,保留原始代碼文件的前提下,產生新的Python3代碼文件
2to3 -w example.py
TensorFlow使用
TensorFlow相關代碼可以在Colab上直接運行,不需要環境配置
修改Tensorflow運行版本
原本Colab默認以TensorFlow1.x 版本運行,但某次更新後,默認以TensorFlow2.x 版本運行,對於TensorFlow的版本使用,只需按以下代碼修改使用的版本即可
%tensorflow_version 2.x
# %tensorflow_version 1.x
import tensorflow as tf
Keras使用
在Colab暫未更新前,可直接使用Keras,但其更新後,運行原先的Keras代碼將會報錯,如下圖
提示TensorFlow版本不正確,需要使用 tf.keras 替代或是修改TensorFlow版本爲1.x,但該版本的修改不能簡單地使用本教程中提及的命令解決,但可在導入Keras包時,修改其包名如下
from tensorflow.python.keras.datasets import mnist
from tensorflow.python.keras.utils import np_utils
from tensorflow.python.keras.models import Sequential
from tensorflow.python.keras.layers import Dense
但修改包名的用法在某些情況下不起作用,例如
from tensorflow.python.keras import optimizers
Colab仍舊報錯說用 tf.keras 替代,其餘解決方法暫未知曉,若是僅需訓練的結果,可以使用如下代碼替換
adam = tf.keras.optimizers.Adam(lr=lr, beta_1=0.9, beta_2=0.999, epsilon=None, decay=decay, amsgrad=False)
Theano使用
Theano的使用基於Keras的後端,需要使用Theano,則需要修改Keras的後端設置,Colab默認Keras後端爲TensorFlow,在程序最前端添加如下代碼即可實現Keras的後端框架替換:
import os
os.environ['KERAS_BACKEND'] = 'theano'
之後便可直接寫入Theano相關代碼
PyTorch使用
PyTorch相關代碼可以在Colab上直接運行,不需要環境配置
使用Tensorboard
Colab運行代碼後,會在虛擬機文件中產生Tensorboard圖表文件,可將其下載到本地,使用終端運行查看
選中筆記本左側導航中的“文件”,可查看虛擬機文件,文件的下載只能下載具體的某一文件,無法下載某一文件夾
文件路徑問題
若是運行上傳至谷歌雲盤的文件,其路徑設置與雲盤存儲位置相關
若是運行筆記本中的代碼,其路徑與 drive.mount(’/content/drive/’) 相關,該筆記本存儲位置爲 ‘/content/drive/’ ,即當前位置爲 '/content/drive/'
文件的上傳與下載
選中筆記本左側導航中的“文件”,可查看虛擬機文件,文件的上傳與下載只能針對具體的某一文件,無法下載某一文件夾,但上傳文件可以使用全選上傳,但嵌套的文件夾需要自行創建,再將內部文件上傳
備註說明
在同一筆記本中添加代碼框,執行其中代碼,該代碼產生的數據文件等會影響或可用於下一代碼框,若退出某一筆記本或筆記本掉線,其虛擬機中的數據文件會保留一段時間(大致幾分鐘到十幾分鍾),若時間過長,虛擬機將會格式化爲初始狀態