1.Motivation
深度学习研究在收集数据集的时候,经常遇到开源数据集放到Google Drive上的情况。在碰到较大的数据集时,通常无法先下载到本地,再上传到服务器上。毕竟太慢了。今天在网上查了相关资料,基本掌握了流程。记录在此,方便众人。
总的来说,本博客致力于回答下列问题:
Q1:如何基于本地电脑的Google账户信息在linux服务器上访问Google Drive;
Q2:如何下载其他人共享的大型数据集;
2.Method
2.1. Q1 and A1
下面以本地电脑是windows系统为例进行介绍,推荐使用rclone命令。
在本地电脑上下载rclone.exe,官网地址:Rclone downloads
使用下列命令配置本地电脑的rclone环境,并调用本地Google账号(请查阅其他资料,不再赘述):
rclone config
注意:配置完成后,将本地生成的.config/rclone中的文件,拷贝到Linux服务器用户根目录下的.config/rclone文件夹中(服务器上没有目标文件夹的话,就自己创建)。
如果配置正确,连接成功,那在linux服务器执行下列命令可以输出Google drive下的文件名称:
rclone config show
2.2. Q2 and A2
这一步就可以从云盘下载数据集到服务器上了,但又有新的问题。
一些教程介绍先把数据集保存在自己的云盘上,再用linux服务器从自己云盘上下载。
但如果数据集过大的话,自己的云盘装不下,这一步就没辙了。
推荐使用下列命令,直接从共享文件夹下载数据集,不需要保存到本地。
可以通过如下命令查看云盘中所有的共享文件:
rclone lsf --drive-shared-with-me shared_drive:
这里把"shared_drive"替换成rclone config命令显示的环境名称,比如"gdrive"。
然后可以通过下列命令下载文件夹:
rclone copy --drive-shared-with-me shared_drive:target_folder /path/local_folder
这里,“target_folder”是希望下载的文件夹路径,“/path/local_folder”是希望保存到服务器上的路径。
到此,数据集下载完成,可以开始下一步实验。