什么是 Google Colab?
- Colaboratory是一个 Google 研究项目,旨在帮助传播机器学习培训和研究成果。
- 是一个Jupyter 笔记本环境,不需要进行任何设置就可以使用,并且完全在云端运行。
- Colaboratory笔记本存储在 Google 云端硬盘中,并且可以共享。Colaboratory 可免费使用。
- 利用Colaboratory ,可以方便的使用Keras,TensorFlow,PyTorch,OpenCV等框架进行深度学习应用的开发。
总而言之,GPU是深度学习开发的重要硬件需要,而 Google Colab相当于给我们提供了一个功能强大,使用方便,最重要是可以免费的GPU资源一段时间!如果自己的电脑配置不是很好,可以免费使用一下这个上面的硬件资源,在训练完毕后将权重文件与训练日志下载下来,本篇博客记录一下使用方式,供以后复习使用。
Colab中支持的硬件资源(有时间限额,目前普通用户只能用T4)
云端训练,本地预测!(可以看出硬件很给力60000张图片的数据集只用两小时就训练了200轮)
本地查看损失!
注意点1:挂载硬盘到虚拟机(并上传自己的数据集)
登录上Colab之后,每个人都会被分配15G大小的硬盘(类似于百度网盘给你的空间),这里要记住,真个Colab只有这15G空间真正属于你,其余文件夹的内容不属于你。
这里选择的是GPU资源,以下是临时分配的一台虚拟机。
点击上方小图标可以把你的硬盘挂载到这台虚拟机(再次重申,只有你硬盘15G的空间属于你,一旦卸载或者退出,虚拟机会被回收,数据也会丢失)。只要15G硬盘中的数据可以保留下来!
挂载完之后可以使用Python脚本创建、删除、修改文件,可以使用一些简单的命令操作系统。虚拟机内的操作就跟操作我们自己的电脑很像,大家可以在网上找一下具体的使用指令。
如:解压缩指令 解压/content/data.zip到content
!unzip "/content/data.zip" -d "/content/"
进行深度学习训练,肯定需要用到数据集,如果是含有几万张图片的数据集,直接上传比乌龟的速度还慢,我们可以先在自己的电脑将数据集打包,将压缩包上传到网盘中,然后解压训练。
压缩包放在content文件夹下解压会超级快,就像在自己的电脑中解压一样!如果是放在硬盘中解压那么速度会慢上不少(并且有网络延迟可能会丢失数据,亲测太痛了),除此之外如果解压到自己的硬盘中,在进行训练时也会因为网络延迟出现读不到数据的情况。
正确的做法是先将压缩包移到虚拟机内部,然后直接在虚拟机内部解压,训练时直接读取虚拟机内的数据。(速度与准确并存)
注意点2:训练模型时突然中断
Colab还是挺良心的,一周大概能免费用12小时左右,由于他们的硬件比较高级,在训练时速度嘎嘎快。
原因1:数据放在了硬盘中
如果将数据集放在自己的硬盘空间内,在训练模型时从硬盘路径下读取数据集,大概率你会碰到某一份数据丢失报错的情况,并不是因为我们的数据真的丢失了,有可能因为频繁读写硬盘、网络阻塞等原因。通俗点讲就是硬盘IO与虚拟机不匹配,我猜测训练时大概率数据流向如下图所示。
知道原因之后改进起来就很简单了,我们直接将数据集备份一份,硬盘中放一份压缩包,在复制一份到虚拟机,然后直接在虚拟机中解压并读取其中数据。
原因2:训练时长达到限额
此时可能会遇到一个新问题,当我们并不知道大概需要训练多长时间时,有可能会因为免费使用时间达到限额而强制断开连接(今天就是被摆了一道,只差5轮就训练200轮结束,结果被强制断开连接,所有的数据都丢失了),这时就需要我们定时将较好的权重文件放进硬盘中。由于目前阶段比较忙,没有手动去实现,这里提供一下思路,在训练的过程中可以每10轮或者15轮加入一段移动文件的代码,将目前所得到损失最小,准确率最高的权重文件移动到硬盘(期间做好异常处理)。
移动文件的代码可以使用下面一个库:文章来源:https://www.toymoban.com/news/detail-456653.html
import shutil
shutil.copy2("/content/pth/resnet18_10.pth","/content/drive/MyDrive/Colab Notebooks/resnet/resnet_model/")
有了这个整体的流程,使用Colab训练自己的模型应该没有什么问题了。赶紧BP T4 GPU哈哈哈。训练过程中唯一的不足就是test_loss,越训练越高,以后再慢慢研究吧。
文章来源地址https://www.toymoban.com/news/detail-456653.html
到了这里,关于Google Colab的使用方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!