web-dev-qa-db-ja.com

ローカルドライブからGoogle Colaboratoryに大きなデータをアップロードして保存する方法

このKaggleリンクからZipとして大きな画像トレーニングデータをダウンロードしました

https://www.kaggle.com/c/Yelp-restaurant-photo-classification/data

以下を効率的に実現するにはどうすればよいですか?

  1. Google Colaboratoryでプロジェクトフォルダーを作成する
  2. Zipファイルをプロジェクトフォルダにアップロード
  3. ファイルを解凍します

ありがとう

編集:私は以下のコードを試しましたが、大きなZipファイルでクラッシュしました。これを行うには、ローカルドライブ内のファイルの場所を指定するより良い/効率的な方法がありますか?

from google.colab import files
uploaded = files.upload()

for fn in uploaded.keys():
  print('User uploaded file "{name}" with length {length} bytes'.format(
      name=fn, length=len(uploaded[fn])))
6
GeorgeOfTheRF
!pip install kaggle
api_token = {"username":"USERNAME","key":"API_KEY"}
import json
import zipfile
import os
with open('/content/.kaggle/kaggle.json', 'w') as file:
    json.dump(api_token, file)
!chmod 600 /content/.kaggle/kaggle.json
!kaggle config set -n path -v /content
!kaggle competitions download -c jigsaw-toxic-comment-classification-challenge
os.chdir('/content/competitions/jigsaw-toxic-comment-classification-challenge')
for file in os.listdir():
    Zip_ref = zipfile.ZipFile(file, 'r')
    Zip_ref.extractall()
    Zip_ref.close()

行9に小さな変更があり、エラーが発生していませんでした。ソース: https://Gist.github.com/jayspeidell/d10b84b8d3da52df723beacc5b15cb27 コメントとして追加できませんでした担当者。

4
Vikas

これらのスレッドで参照できます。

I/O example notebook も確認してください。たとえば、xlsファイルにアクセスするには、ファイルをGoogleスプレッドシートにアップロードします。次に、同じI/Oサンプルノートブックでgspreadレシピを使用できます。

2
abielita

ダウンロードを支援するには、kaggle-cliモジュールの使用が必要になる場合があります。

this fast.ai thread で説明されています。

Kaggle APIからColabノートブックにデータをダウンロードして抽出するこのスクリプトを書いたところです。ユーザー名、APIキー、およびコンテスト名を貼り付けるだけです。

https://Gist.github.com/jayspeidell/d10b84b8d3da52df723beacc5b15cb27

Colabの手動アップロード機能はバグが多いので、ノートブックを開くたびに新しいVMで開始するため、とにかくwgetまたはAPIサービスを介してファイルをダウンロードすることをお勧めします。この方法でデータは自動的にダウンロードされます。

0
Jay Speidell

別のオプションは、データをDropboxにアップロードすることです(収まる場合)、ダウンロードリンクを取得します。次に、ノートブックで行います

!wget link -0 new-name && ls
0
parsethis