Google Colab加载数据集的常用方式

2019/06/26 deeplearning 共 2590 字,约 8 分钟

1.colab介绍

1.1 简介

colab是google推出的一个 Jupyter 笔记本云端环境,提供免费的gpu,其笔记本存储在 Google 云端硬盘中,可以方便的使用Keras,TensorFlow,PyTorch等框架进行深度学习应用的开发。

Google Drive: https://drive.google.com/drive

Colab: https://colab.research.google.com/drive/

1.2 使用方法

  • 将.ipynb文件上传到谷歌云盘,点选邮件使用”colab”打开

1.3 配置gpu加速

  • 点击”修改”–>”笔记本配置”—>”硬件加速配置”选择gpu即可

Alt text

2.数据集方式

2.1 使用!wget下载数据集到服务器

Colab其实是一台带有GPU的Centos虚拟机,可以直接使用linux的wget命令下载数据集到服务器,默认是下载到/content路径,下载速度可以达到60-130mb/s

  • 下载并解压数据集命令:
    #!wget https://download.pytorch.org/tutorial/hymenoptera_data.zip
    #!unzip hymenoptera_data.zip -d ./
    
  • 加载数据集命令:
    # 使用 ImageFolder 定义数据集
    # 定义数据预处理
    train_tf = tfs.Compose([
      tfs.RandomResizedCrop(224),
      tfs.RandomHorizontalFlip(),
      tfs.ToTensor(),
      tfs.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225]) # 使用 ImageNet 的均值和方差
    ])
    train_set = ImageFolder('./hymenoptera_data/train/', train_tf)
    

2.2 挂载谷歌云盘加载数据集

  • 首先在colab中挂载谷歌云盘的命令如下,执行后会要求输入谷歌账号的key即可挂载
    from google.colab import drive
    drive.mount('/content/drive/')
    
  • 将文件上传到谷歌云盘,比如data/data.csv。上传的方式一种是手动上传,另一种是通过wget命令下载到谷歌云盘,然后加载使用,存谷歌云盘的好处是数据不会像第一种方法那样下次连接就丢失,坏处是谷歌云盘只有15g,对大数据集不适用,将数据集下载到谷歌云盘的命令如下:
    import os
    #改变当前工作目录到谷歌云盘的路径
    path="/content/drive/My Drive/Colab Notebooks/"
    os.chdir(path)
    os.listdir(path)
    #使用wget命令下载数据集到这个路径
    !wget https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/data.csv
    
  • 加载数据集
    train = pd.read_csv('/content/drive/My Drive/Colab Notebooks/data/data.csv')
    

2.3 使用上传按钮上传到磁盘

  • 谷歌提供67G的磁盘空间,使用上传按钮上传如下图,这种方法适合数据集不大或者自有数据集的情况:

Alt text

2.4 从kaggle加载数据集

  • 如果你是在kaggle打比赛,上面整好有你需要的数据集,可以直接使用kaggle命令下载,需要在kaggle的my profile里面选择创建api token,然后在本地生成username与key

Alt text

{"username":"gongenbo","key":"f26dfa65d06321a37f6b8502cd6b8XXX"}
  • 下面以驾驶状态检测项目为例,地址:https://www.kaggle.com/c/state-farm-distracted-driver-detection/data
  • 通过kaggle下载数据的命令
    !pip install -U -q kaggle
    !mkdir -p ~/.kaggle
    !echo '{"username":"gongenbo","key":"f26dfa65d06321a37f6b8502cd6b8XXX"}' > ~/.kaggle/kaggle.json
    !chmod 600 ~/.kaggle/kaggle.json
    !kaggle competitions download -c state-farm-distracted-driver-detection
    
  • 下载信息
    Downloading sample_submission.csv.zip to /content
    0% 0.00/193k [00:00<?, ?B/s]
    100% 193k/193k [00:00<00:00, 71.7MB/s]
    Downloading imgs.zip to /content
    100% 3.99G/4.00G [02:13<00:00, 44.2MB/s]
    100% 4.00G/4.00G [02:13<00:00, 32.1MB/s]
    Downloading driver_imgs_list.csv.zip to /content
    0% 0.00/92.9k [00:00<?, ?B/s]
    100% 92.9k/92.9k [00:00<00:00, 100MB/s]
    
  • 训练完将成绩提交到kaggle的命令
    !kaggle competitions submit -c state-farm-distracted-driver-detection -f submission.csv -m "Message"
    

3.其他常用命令


#查看gpu信息
!/opt/bin/nvidia-smi
#查看内存
!cat /proc/meminfo
#查看cpu信息
!cat /proc/cpuinfo
#查看空间大小
!df -h

4.总结

  1. 需要科学上网才能使用colab,方式请自行查找
  2. 使用过程中经常断开连接,点击右上角箭头”重新连接到托管平台”即可
  3. Colab最多连续使用12小时,超过时间系统会强制掐断正在运行的程序并收回占用的虚拟机。
  4. 在使用过程中训练驾驶员状态检测10分类问题5G数据,Tesla K80 12G显卡也就只能跑个ResNet18层的网络,34层有点吃力,跑50层的就内存溢出了,所以大网络开始有点吃力的。
支付宝打赏 微信打赏

您的打赏是对我最大的鼓励!

Search

    Post Directory