薅羊毛之Colab的使用

文章目录

  • 0.说在前面
  • 1.Google Drive
  • 2.Google Colab使用
    • 安装各种工具包
    • 用Colab运行GoogleDrive中的.py文件
      • 下载数据集
    • 设置GPU
      • 验证GPU运行状态
  • 开搞CS231n by Colab
    • 授权
      • 法一:虚拟机上安装谷歌云盘
      • 法二直接挂载(这个前几节有讲过):
    • 下载数据集
    • 正式开工

0.说在前面

Colaboratory 是一个研究项目,可免费使用。并且提供免费GPU

Colaboratory 是一个 Google 研究项目,旨在帮助传播机器学习培训和研究成果。它是一个 Jupyter 笔记本环境,不需要进行任何设置就可以使用,并且完全在云端运行。 Colaboratory 支持在线安装包以及linux命令等操作。

有一点非常重要:它与google driver绑定!每次启动,会为用户分配一个新的内存空间,如果说你想要长期使用,必须上传文件至你的google driver,接下来一起来研究如何持久化使用google driver!
先祭出两个玩意的网址:Google Colab、Google Drive。
访问Google的各种网站可以看这里,如何安装谷歌访问助手https://www.cnblogs.com/qiqi715/p/11503715.html

1.Google Drive

研究Colab之前,了解一下Google Driver基本操作,首先来看如何上传文件及其他基本操作!
基本操作
打开上述googl driver官网,进去就可以看到这个页面,然后空白处点击右键就会出现创建文档与上传文档操作,只需要点击右键即可完成这个上传操作(或者其他操作)!

薅羊毛之Colab的使用_第1张图片
当然第一次用Colab和Drive合作要绑定一下,操作就是上图,右键后点红圈。

2.Google Colab使用

安装各种工具包

使用!pip install 或者!apt-get install命令,在Colab中,在命令前加上感叹号“!”运行的就是linux命令。

用Colab运行GoogleDrive中的.py文件

薅羊毛之Colab的使用_第2张图片
为了能运行Google Drive上文件夹中assignment1的py文件,首先我们要将当前工作目录挂载在google Driver上的”assignment1”路径下。在colab随便新建一个py文件,插入代码块,然后就可以准备执行命令。
第一步就是要挂载Google Drive(挂载一次管10小时,要重新验证)

from google.colab import drive
drive.mount('/content/drive')

运行后会出现一个链接,点击该链接,选择自己的google账号,短信验证之后复制出现的密钥,粘贴至下方框中即可。
挂载过一次就ok了,就会如上图所示在左边可以出现树形文件浏览界面,我的assignment1是在Google Drive根目录下的。
再修改当前工作目录到“assignment1”目录下,使用python的 os模块的chdir()函数,之后检查当前目录的文件,得到如下结果:
薅羊毛之Colab的使用_第3张图片

下载数据集

训练模型当然少不了大量数据集,当然你可以通过拖曳将本地数据集上传到Google Drive上,可是那样你会崩溃的——太慢慢慢慢慢慢慢了。所以,最好的办法是让谷歌服务器直接下载数据,而不是本地电脑下载数据集再传送过去。怎么做呢?
使用!wget命令,例如:

!wget https://launchpad.net/~alessandro-strada/+archive/ubuntu/google-drive-ocamlfuse-beta/+build/15740102/+files/google-drive-ocamlfuse_0.7.1-0ubuntu3_amd64.deb

由于下载的是.zip压缩包,需要解压:
使用!unzip命令。
当然数据可以直接弄到Drive上
可以安装插件,具体看这里:Google Drive直存插件

设置GPU

按下图在ipynb文件界面选择菜单
薅羊毛之Colab的使用_第4张图片
然后选择类型:
薅羊毛之Colab的使用_第5张图片

验证GPU运行状态

import tensorflow as tf
tf.test.gpu_device_name()

显示:'/device:GPU:0',然后执行
!/opt/bin/nvidia-smi
薅羊毛之Colab的使用_第6张图片
显示正常,搞定。

开搞CS231n by Colab

反正东西不大,先把assignment1弄下来本地,再上传到Google Drive,当然也可以用插件直接保存到Google Drive。

授权

法一:虚拟机上安装谷歌云盘

老师给出了授权代码,直接copy过来,不过为什么里面为什么这样也不知道,先记下来:
注定我是不会用这个方法。。。

# 授权验证
!apt-get install -y -qq software-properties-common python-software-properties module-init-tools
!wget https://launchpad.net/~alessandro-strada/+archive/ubuntu/google-drive-ocamlfuse-beta/+build/15740102/+files/google-drive-ocamlfuse_0.7.1-0ubuntu3_amd64.deb
!dpkg -i google-drive-ocamlfuse_0.7.1-0ubuntu3_amd64.deb
!apt-get install -f
!apt-get -y install -qq fuse
from google.colab import auth
auth.authenticate_user()
from oauth2client.client import GoogleCredentials
creds = GoogleCredentials.get_application_default()
import getpass
!google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret} ‹ /dev/null 2›&1 | grep URL
vcode = getpass.getpass()
!echo {vcode} | google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret}

创建drive目录
指定根目录!

#指定Google Drive云端硬盘的根目录,名为drive
!mkdir -p drive
!google-drive-ocamlfuse drive

法二直接挂载(这个前几节有讲过):

from google.colab import drive
drive.mount('/content/drive')

貌似这样挂了以后,根目录就是drive了,不能再写./content/drive

下载数据集

我是本地下好直接传上Drive的,这里老师给的直接在Drive上下,因为dataset那个目录下面有个sh文件,不过里面的东西要整理一下,源文件貌似缺了换行,不知道是不是windows的原因。

# Get CIFAR10
wget http://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz
tar -xzvf cifar-10-python.tar.gz
rm cifar-10-python.tar.gz 

下面是在Drive上下载数据集咋整:
首先进入assignment1目录,这个目录根据你的情况来修改!!!可以一步一步的cd ls来查看!,然后开头都是cd content/drive/ 后面的根据情况改!!!

!cd "/content/My Drive/assignment1" && ls

**注意:**路径名或者变量中间有空格时,可以用双引号括起来,不然会报错:bash: cd: too many arguments,另外,要查看进入文件夹下的东西要吧ls写在一行。
紧接执行下面这个命令,然后下载数据集!

 !cd ./cs231n/datasets && bash get_datasets.sh && ls

实际执行时候要一步写到进入datasets文件夹:

!cd "drive/My Drive/assignment1/cs231n/datasets" && bash get_datasets.sh && ls

如下图所示:
薅羊毛之Colab的使用_第7张图片
不过这里404错误,估计是链接有问题(链接后面那里出现了%0D,估计是在windows下编辑过),我东西已经下载过了,不纠结了。

正式开工

切换路径
返回我们的任务数据集目录,或许你跟我的不一样,但是开头/content/drive 与结尾的asssignment1都一样!至于中间是什么,根据你在google driver的目录来配置,我是在根目录下创建了一个colab_learn文件夹,然后将任务放在这里面!自己修改一下即可!!!

!cd "/content/My Drive/assignment1"

然后开始运行knn.ipynb第一行代码,看是否报错!

如果报错,如下图:
薅羊毛之Colab的使用_第8张图片
则说明是路径问题,此时你需要运行!ls查看当前目录是否在assignment1目录,如果不在,肯定会报错的,所以你进入到这个目录里面才可以,也就是上面cd命令一定要检查是否正确!
cd命令看来不靠谱,用上面写过的os.chdir

import os
os.chdir("drive/My Drive/assignment1/")
!pwd

这样就ok了。

补充:
使用!pip install 安装运行第一个实验要用的包:
scipy、numpy,pillow,pil,matplotlib,future,貌似colab都装好了
读取图片的包被更新了,把data_utils.y代码改下:

#from scipy.misc import imread
from imageio import imread

另外,每次运行挂载都要短信验证,有没有方法去掉这个步骤?

你可能感兴趣的:(李飞飞CS231n学习笔记)