谷歌云盘Colab使用心得

本文指导如何在Google Colab中上传文件夹、安装软件,挂载Google Drive,下载数据集,优化I/O操作,同步模型并利用云端存储。重点讲解了文件路径管理、数据下载与存储的最佳实践。
部署运行你感兴趣的模型镜像

1 连接Colab

1.1 上传文件夹到云端硬盘

 在这里插入图片描述

1.2 安装必要的包和软件

在代码段输入以下代码:

!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} &1 | grep URL
vcode = getpass.getpass()
!echo {vcode} | google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret}

1.3 Colab上挂载Google Drive

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

1.4 进入到文件所在的目录

import os
path="/content/drive/MyDrive"
os.chdir(path)
os.listdir(path)

 path="/content/drive/MyDrive"包含内容为如下界面内容:

 得到的结果为:['Colab Notebooks', 'Untitled', 'Untitled0.ipynb', 'colab']

2 下载图像数据集

最近在用谷歌云盘的colab跑目标检测的代码,要把KITTI图像数据集保存在谷歌云盘,但是在官网上好像需要发送到邮箱然后再下载比较麻烦,所以在优快云上找到了这个好链接,可以直接在colab上用代码下载保存在谷歌云盘,非常nice! 分享给大家

2.1 下载地址

各类图像数据集下载地址

2.2 下载代码

在云盘中要保存的地址

import os
os.chdir('/content/drive/MyDrive/Colab')

下面是下载数据集的代码,只需要【!wget 网址

# 下载数据集,后面记得换上自己需要的数据集网址
!wget https://s3.eu-central-1.amazonaws.com/avg-kitti/data_object_image_2.zip

3 命令说明

3.1 查询GPU性能

!/opt/bin/nvidia-smi

3.2 查询当前位置所在目录

!ls

3.3 查看当前的工作路径

!pwd

3.4 新建文件夹

!mkdir  XXX  新建文件夹,XXX是你的路径与文件名,例如下图是在根目录下创建data文件夹。

!mkdir ./data

3.5 设置工作路径

#设置根目录为此路径,即工作路径
import os
os.chdir('/content/drive/MyDrive/paper/fastswa_semi_metric_files/')

上面代码是设置云端硬盘项目主目录为工作根目录,这样子的话就无需改动,项目里面的路径了,对了项目中要使用相对路径,否则会报错。如实在需要使用绝对路径,那么一定要是 /content/drive/MyDrive/ 开头。这样的话,我们就进入到了我们的项目中了,再执行下面的命令就可以运行我们的mian.py 了,前面感叹号一定要是英文感叹号。

! python main.py

3.6 复制解压数据集

如此一来就可以在Colab中连接到谷歌云端硬盘,然后再进入项目主目录运行我们的代码了。但是又有个问题来了,就是我们的Colab服务器与云端硬盘并不是在一台服务器上,所以如果我们的项目中有大量的数据需要读取,那么这个I/O操作是非常消耗时间的。这个时间简直让人疯了,比我本机还慢,所以为了解决这个问题,需要把云端的数据加载到上文的 content 路径下,例如上文的data 目录下。首先把数据打包成zip压缩包上传到云端硬盘中,例如我的数据是data-local.zip,放在Demo路径下,使用如下命令进行copy到./data/下,也就是content/data路劲下,Linux中./表示主目录content/。

!cp /content/drive/MyDrive/paper/Demo/data-local.zip ./data/

然后再进入到./data目录下,解压data-local.zip数据,这个过程都很快,前面copy数据也非常快,然后就需要改一下代码中的读取数据的路径了,改成./data/data-local/XXX 即可读取,这时候运行起来就非常快了!

!cd ./data && unzip data-local.zip

4 运行自己的py文件

  1. 将py文件和其他必要文件上传到Google Drive
  2. 将工作目录切换到py文件所在的目录
import os
os.chdir('drive/Colab/自己的文件')

不放心的话切换之后用!s命令查看是不是到指定目录

     3. 运行代码

!python xx.py

5 注意事项

1. Linux系统下文件路径使用‘/’而不是“\”,所有带“\”路径都会提示文件不存在
2. 使用云端硬盘保存数据
直接使用colab可以上传临时数据,保存临时结果,一旦断开连接,数据将会丢失,所以强烈建议使用云端硬盘保存数据。
3. 断开连接的解决办法
在使用Colab时,一段时间挂机未操作有可能导致连接断开,但是要是想跑时间较长的项目时不可能一直盯着屏幕,解决办法如下:
在浏览器中按F12,找到console将下面的代码粘贴到控制台运行即可。

function ClickConnect(){
  colab.config
  console.log("Connnect Clicked - Start"); 
  document.querySelector("#top-toolbar > colab-connect-button").shadowRoot.querySelector("#connect").click();
  console.log("Connnect Clicked - End");
};
setInterval(ClickConnect, 60000)

4. 运行时间过长的项目
建议保存中间结果,下次使用时直接读取中间结果继续跑。

6 防中断

在Firefox和Chrome中,在colab页面,按Ctrl+Shit+i,打开检查页面(也可以右击鼠标,选择“检查”),并切换到控制台或terminal标签,chrome中为Console。

function ConnectButton(){
    console.log("Connect pushed"); 
    document.querySelector("#top-toolbar > colab-connect-button").shadowRoot.querySelector("#connect").click() 
}

setInterval(ConnectButton,60000);

执行了代码后,记下弹出的数字,那是intervalId,当想停止这段代码的执行时,只需要执行

clearInterval(intervalId)

7 在gdrive中保存调用模型

7.1 保存模型

要保存我们的模型检查点(或任何文件),我们需要将其保存在驱动器的安装路径中。eg.

model_save_name = 'classifier.pt' 
path = F"/content/gdrive/My Drive/{model_save_name}" 
torch.save(model.state_dict(), path)

7.2 调用模型

记住我们保存的路径:

eg.

model_save_name = 'classifier.pt' 
path = F"/content/gdrive/My Drive/{model_save_name}" 
model.load_state_dict(torch.load(path))

8 在需要同步的地方手动强制刷新

我想将训练的中间结果写到Drive里保存,需要等所有任务都完成,并且在这边显示已经存在,回到Drive目录里查看仍然啥都没有,这个时候就可能页面关了,缓存文件还没更新过去。实际使用中,可以在需要同步的地方手动强制刷新:

# 实现对网盘的同步
drive.flush_and_unmount()

您可能感兴趣的与本文相关的镜像

Yolo-v8.3

Yolo-v8.3

Yolo

YOLO(You Only Look Once)是一种流行的物体检测和图像分割模型,由华盛顿大学的Joseph Redmon 和Ali Farhadi 开发。 YOLO 于2015 年推出,因其高速和高精度而广受欢迎

使用Colab谷歌云盘,首先需要有一个谷歌账号。若第一次使用,要在“我的云端硬盘 -> 更多 -> 关联更多应用”中关联Google Colaboratory。之后在云盘中新建一个文件夹作为项目文件夹,并上传所需的数据集等文件 [^1]。 具体的使用步骤如下: 1. 将数据传送至谷歌云盘云盘地址:https://drive.google.com/drive/my - drive),创建文件夹并上传数据。 2. 跳转到Colab(新建 -> 更多 -> Google Colaboratory)。 3. 挂载网盘并切换路径,示例代码如下: ```python from google.colab import drive import os # 挂载网盘 drive.mount('/content/drive/') # 切换路径 os.chdir('/content/drive/MyDrive/rnn') ``` 授权成功后,也可通过以下代码挂载Google云盘: ```python !mkdir -p /content/drive !google-drive-ocamlfuse /content/drive ``` 挂载成功后,就能够通过文件夹的方式浏览和编辑Google云盘中的文件 [^2][^4]。 不过,在挂载谷歌云盘时可能会遇到问题。例如使用原来挂载云盘的代码时可能会出错,原代码如下: ```python !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} ``` 若遇到此类问题,可能在百度上找不到解决办法 [^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值