谷歌Colab運行Tensorflow、Keras、Theano、PyTorch簡單使用(持續更新)

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

文件的上傳與下載

選中筆記本左側導航中的“文件”,可查看虛擬機文件,文件的上傳與下載只能針對具體的某一文件,無法下載某一文件夾,但上傳文件可以使用全選上傳,但嵌套的文件夾需要自行創建,再將內部文件上傳

備註說明

在同一筆記本中添加代碼框,執行其中代碼,該代碼產生的數據文件等會影響或可用於下一代碼框,若退出某一筆記本或筆記本掉線,其虛擬機中的數據文件會保留一段時間(大致幾分鐘到十幾分鍾),若時間過長,虛擬機將會格式化爲初始狀態

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章