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加速硬件
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/'
文件的上传与下载
选中笔记本左侧导航中的“文件”,可查看虚拟机文件,文件的上传与下载只能针对具体的某一文件,无法下载某一文件夹,但上传文件可以使用全选上传,但嵌套的文件夹需要自行创建,再将内部文件上传
备注说明
在同一笔记本中添加代码框,执行其中代码,该代码产生的数据文件等会影响或可用于下一代码框,若退出某一笔记本或笔记本掉线,其虚拟机中的数据文件会保留一段时间(大致几分钟到十几分钟),若时间过长,虚拟机将会格式化为初始状态