从Kaggle上直接下载数据到aws

问题

在aws上训练深度学习实例时,一般数据集非常大,如果已知下载链接,可以直接使用urllib.urlretrieve方法将文件下载到当前目录。

...
urllib.urlretrieve(
            'https://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz',
            tar_gz_path,
            pbar.hook)   # 参考其他文章,用 tqdm 来显示下载进度条
...

但是Kaggle上的数据集必须登陆之后才能下载,直接复制链接会下载失败。

解决办法

2种办法:安装kaggle-cli,或者利用cookie下载。

可以参考Downloading data via command line

kaggle-cli下载

kaggle-cli https://github.com/floydwch/kaggle-cli

安装kaggle-cli

$ pip install kaggle-cli

下载文件

$ kg download -u <username> -p <password> -c <competition> -f <filename>

其中, 是下载路径中的竞赛名,比如要下载State Farm Distracted Driver Detection中的driver_imgs_list.csv.zip 文件:https://www.kaggle.com/c/state-farm-distracted-driver-detection/data

$ kg download -u 用户名 -p 密码 -c state-farm-distracted-driver-detection -f driver_imgs_list.csv.zip

注意:
用户名和密码必须要是能直接登陆kaggle网站的,不能是采用关联账户(如google)的方式登陆。
当前网络需要能上google,否则会提示连接超时。

wget命令下载

此方法需要先导出cookies.txt,然后再使用wget 命令,此方法网上教程较多,不细说呢。
参考:http://ankitshah009.blogspot.co.id/2017/01/kaggle-download-data.html

你可能感兴趣的:(机器学习)