写在前面

google colab是google推出的无需任何配置、免费使用GPU,可以在浏览器中编写和执行Python代码的环境。使用完全类似于jupyter notebook。现对colab的使用做一个大概的梳理,colab的基本使用其自身的教程或其他网络教程。

基本使用命令

开启一个notebook后需要先挂载谷歌硬盘

硬盘挂载命令

#如果运行时环境断开需要重新挂载

from google.colab import drive

drive.mount('/content/drive')

查看资源(GPU)使用情况

因为是linux环境,所以需要在命令前加一个感叹号 !

#查看GPU使用情况

!nvidia-smi

#查看CPU信息

!cat /proc/cpuinfo

安装所需的包

!pip install ****

压缩与解压

因为google drive(谷歌云盘)是支持上传文件夹的,但是速度慢,所以上传数据集最好还是将压缩包上传,再用命令进行解压操作,一下zip命令我试过,rar的没试过,看别人写的。

#解压zip文件

!unzip -uq "拓展名为zip的文件" -d "解压到的目录"

#解压rar文件

!pip install pyunpack

!pip install patool

from pyunpack import Archive

Archive('/content/drive/My Drive/test.rar').extractall('/content/test')

进入到文件所在目录

import os

path="/content/drive/My Drive/untitled"

os.chdir(path) #跳转目录

os.listdir(path)

colab防断机制

colab理论上可以连续工作不超过12个小时,但是一般半个小时内不操作可能就就断开了,因此需要做一个防断处理

F12打开网页开发者调试工作,找到console控制台输入以下代码

function ConnectButton(){

console.log("Connect pushed");

document.querySelector("#top-toolbar > colab-connect-button").shadowRoot.querySelector("#connect").click()

}

setInterval(ConnectButton,60000);

意思是每隔60s自动push一次与colab进行交互

训练速度

使用AlexNet进行一个粗浅的测试,5个类别,3306张训练集数据,364张验证集数据我分配到的是Tesla T4

进行4轮训练,可以看到第一轮速度巨慢,二三四轮速度应该比较正常。原因: colab从google drive中加载数据导致数据加载速度跟不上GPU处理速度解决方案一: 把数据放到colab中(colab路径是/content,而google drive路径为/content/drive/Mydrive)调整后,实验结果对比,第一轮速度慢的问题解决了

速度对比GeForce Titan X

本地Titan X速度如下,单轮训练17s,验证11s

colab上Tesla T4速度如下,单轮训练14s,验证1s

后面还测试了1080ti的速度,Tesla T4的速度是比1080ti慢一些。

因为没有控制所有使用的环境一致,所以本次实验可能存在各种环境版本不同所带来的误差

总结

感觉colab从学习的角度上来说,还是可以用的,只不过有些地方会稍显麻烦或者说不适应,并且免费的colab没有terminal,需要升级colab pro或者colab pro+。后续可能会更新关于colab使用的别的内容,欢迎大家互相交流学习。