Colaboratory 简称“Colab”,Google Research 团队开发,任何人都可以通过浏览器编写和执行任意 Python 代码,尤其适合机器学习、数据分析、教育目的。Colab 是一种托管式 Jupyter 笔记本服务,用户无需设置,就可直接使用,还能免费使用 GPU/TPU计算资源。从“文件”菜单中选择“上传笔记本”即可将现有的 Jupyter/IPython 笔记本导入,Colab 笔记本存储在 Google 云端硬盘上,也可从 GitHub 加载,更多详情请看文档:colaboratory。
问题一:Colab解压CIFAR-10数据集
在使用Colab中的GPU进行深度学习训练时,如果用CIFAR-10官方提供的数据集进行训练很轻松只有几个文件,如果没有解压工具也可以轻松跑起来。如果是有60000张图片大小为55M的数据集,那么解压缩可能需要花费一天时间(亲测使用下图方式,解压8小时左右才解压了3w张图片)。
问题二:Colab不支持删除非空文件夹
刚才解压缩的数据集如果想要删除掉怎么搞?一个图片一个图片删除?那么坐你就慢了。
通用解决方案:Python脚本
归根到底Colab可以为我们提供Python环境,我们便可以执行Python脚本,而使用Python脚本往往可以实现我们想要的功能,除了上面两个问题可以从这个角度出发考虑,其余的问题也可以。
先进行谷歌硬盘装载,不会的自行百度吧。
问题一解决方案:解压缩命令
!unzip "/content/drive/MyDrive/Colab Notebooks/ResNet18/data.zip" -d "/content/drive/MyDrive/Colab Notebooks/ResNet18/"
目录替换为自己的目录(执行命令前一定要好好检查路径)
这种方式快到起飞,短短几分钟就把6w张图片解压完毕!
问题二解决方案:递归删除非空文件夹
直接上代码好了,大家搞深度学习应该懂这些基本的知识!
import os
# os.listdir('/content/drive/MyDrive/Colab Notebooks/ResNet18/data')
# os.remove(f'/content/drive/MyDrive/Colab Notebooks/ResNet18/data/')
def rmdir(dir):
#判断是否是文件夹,如果是,递归调用rmdir()函数
if(os.path.isdir(dir)):
#遍历地址下的所有文件及文件夹
for file in os.listdir(dir):
#进入下一个文件夹中进行删除
rmdir(os.path.join(dir,file))
#如果是空文件夹,直接删除
if (os.path.exists(dir)):
os.rmdir(dir)
print(dir,"文件夹删除成功!")
#如果是文件,直接删除
else:
if(os.path.exists(dir)):
os.remove(dir)
print(dir,"文件删除成功!")
#调用定义函数(路径换成自己的,最好自己先找个废目录测试一下!)
rmdir("/content/drive/MyDrive/Colab Notebooks/ResNet18/data")
秒级别删除非空目录!