写在前面
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使用的别的内容,欢迎大家互相交流学习。