写在前面

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

如何让colab运行GPU colab的gpu慢_开发语言



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

如何让colab运行GPU colab的gpu慢_pytorch_02

速度对比GeForce Titan X

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

如何让colab运行GPU colab的gpu慢_如何让colab运行GPU_03


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

如何让colab运行GPU colab的gpu慢_python_04


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

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

总结

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