Colaboratory 指定 Google Drive 文件夹

参考:

  1. 如何免费云端运行Python深度学习框架?
  2. Google Colab Free GPU Tutorial (PS:需要爱国上网)

上星期折腾了两个晚上,算是知道了Colaboratory与Google Drive进行绑定的过程。记录一下,以备不时之需。

Colaboratory跑不需要额外文件的notebook倒是挺方便的,就是当需要额外文件的时候显得特别麻烦(主要麻烦还是体现在外网上上传文件的网速很不稳定)。感觉Colaboratory也是Google为自家Chromebook打造的。毕竟Chromebook上面只有个Chrome浏览器其他啥也没有。但还是要感谢谷歌提供的免费使用GPU的机会。

1.将所需文件上传至Google Drive

2.新建或上传ipnb文件,并用Colaboratory打开

3.在notebook中运行下方代码进行授权绑定

运行下方代码(傻瓜式粘贴运行即可):

!apt-get install -y -qq software-properties-common python-software-properties module-init-tools
!add-apt-repository -y ppa:alessandro-strada/ppa 2>&1 > /dev/null
!apt-get update -qq 2>&1 > /dev/null
!apt-get -y install -qq google-drive-ocamlfuse 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}

运行完,过一会儿会要求两次点进链接登陆google账号并完成相关授权。

出现以下提示,算是完成授权。

P.S: 谷歌最近可能对 Colaboratory 进行了更新,上述代码可能会报错。报错的话,可以尝试以下代码:

!apt-get install -y -qq software-properties-common python-software-properties module-init-tools
#!add-apt-repository -y ppa:alessandro-strada/ppa 2>&1 > /dev/null
#!apt-get update -qq 2>&1 > /dev/null
#!apt-get -y install -qq google-drive-ocamlfuse fuse
!wget [https://launchpad.net/](https://launchpad.net/)~alessandro-strada/+archive/ubuntu/google-drive-ocamlfuse-beta/+build/15331130/+files/google-drive-ocamlfuse_0.7.0-0ubuntu1_amd64.deb
!dpkg -i google-drive-ocamlfuse_0.7.0-0ubuntu1_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}

4. 指定工作目录

在指定之前先用!ls命令查看一下云端自动分配的默认文件目录,云端默认的文件根目录是datalab

运行下方代码,指定文件根目录:

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

指定完之后,再用!ls命令查看绑定的文件根目录,根目录变为drive。

5. 指定当前工作文件夹

# 指定当前的工作文件夹
import os

# 此处为google drive中的文件路径,drive为之前指定的工作根目录,要加上
os.chdir("drive/Colab Notebooks/dog_project") 

再次用!ls查看当前的文件目录

需要注意的是,Colaboratory是完全基于云端运行的,每次登陆操作,后台分配的机子都是随机的,所以如果notebook运行需要额外的文件,那么在运行之前都要将文件先上传至Google Drive,然后对Colaboratory指定所需的工作目录。

以下是每次绑定都需要运行的代码,将其添加在notebook前面运行。

# 授权绑定Google Drive
!apt-get install -y -qq software-properties-common python-software-properties module-init-tools
!add-apt-repository -y ppa:alessandro-strada/ppa 2>&1 > /dev/null
!apt-get update -qq 2>&1 > /dev/null
!apt-get -y install -qq google-drive-ocamlfuse 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}
# 指定Google Drive云端硬盘的根目录,名为drive
!mkdir -p drive
!google-drive-ocamlfuse drive
# 指定当前的工作目录
import os

# 此处为google drive中的文件路径,drive为之前指定的工作根目录,要加上
os.chdir("drive/.../...") 
# 查看文件目录,是否包含所需的文件
!ls

推荐阅读更多精彩内容

  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    O感悟人生O阅读 9,734评论 2 32
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 117,288评论 15 132
  • .bat脚本基本命令语法 目录 批处理的常见命令(未列举的命令还比较多,请查阅帮助信息) 1、REM 和 :: 2...
    庆庆庆庆庆阅读 5,814评论 1 16
  • 上回书说到准备表白,选时间的事情。 最终选择了2011年11月11日。那天晚上约了她去看电影——失恋33天。晚上先...
    DarrenAnn阅读 146评论 0 0
  • 我走了 我要去追寻我的爱 我的梦想 我的热情 胸口的那团火啊 它正燃烧的激烈 我要如何才不让它熄灭 一回到人群 我...
    Grace_h13阅读 20评论 0 0