6
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Kaggle notebookとGoogle Colabのデータ連携

Posted at

Kaggle notebook上で作業していると、時々インポートしたライブラリ内で発生したエラーに遭遇する。これは必ずしもライブラリ内の実装に問題があるわけではなく、自分の書いたコードに問題があることが多い。しかし、デバッグする上ではライブラリの中のコードにコメントアウトを挟み込むことで原因を究明することが有効なこともある。このような場合、Kaggle notebook上ではファイルを編集することは非常に手間である。

ライブラリ内のファイルを編集しながらデバッグするには、ローカルのマシンを使うのが最も簡単ではあるが、Kaggleと似たような環境でデバッグを行うにはGoogle Colabを使うのが便利である。Google ColabではKaggleと同様にGPUを使うこともできるので、GPUとのデータのやり取りに関する部分のデバッグも行うことができる。

で、問題となるのはそれぞれのプラットフォーム間でのデータ連携であり、今回はこちらについてメモを残すことにする。

Kaggle -> Google Colab

KaggleのデータにGoogle Colabからアクセスするには、Kaggleで発行したアクセスキーを読み込み、Colabからデータにアクセス、コピーすることで行う。

まずはKaggleの自分のAccountページに移動し、'Create New API Token'を押してトークン'kaggle.json'をダウンロードする。

image.png
image.png

ダウンロードしたトークンをgoogle driveにアップロードする。以下、トークンを'My Drive'配下に格納した場合を書く。

Google Colab notebookに移動し、まずはGoogle DriveをColabのデータとしてマウントする。以下の例では、Colabの'/content/drive/'上にgoogle driveのMy Driveがマウントされ、'/content/drive/MyDrive'が生成される。

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

続いて、下記コマンドを実行する。

import os
import json
f = open("/content/drive/MyDrive/kaggle.json")
json_data = json.load(f)
os.environ['KAGGLE_USERNAME'] = json_data['username']
os.environ['KAGGLE_KEY'] = json_data['key']

あとはKaggle用のパッケージをインストールすれば、アクセスが可能になる。

!pip install kaggle

データのダウンロード手順は次のようにする。まずはデータがあるページまで移動する。下の方に行くと、APIコマンドが書いてあるのでコピーする。

image.png
image.png

Google Colab notebookに戻り、こちらをペーストして実行する。

!kaggle competitions download -c siim-covid19-detection

データは80G超なので途中でストップした。

image.png

コンペのデータは大容量なので、データを使ったテストはKaggle notebook上で行い、データの一部を使った実験や、他の方が提供している改造版のパッケージを試すときなどは、上記の方法でGoogleにもってきてテストするようにしている。

Google Colab -> Kaggle

残念ながら、私の調べた限りGoogle ColabからKaggleへ直接データを移す手段は見つからなかった。そのため、Google Colabから一度データをダウンロードし、KaggleのDatasetとしてアップロードし、notebookからそのDatasetを追加することで使うようにしている。

image.png
image.png

なお、データはzipやtar.bzで圧縮してアップロードすることが推奨されており、アップロードされたデータのうち、圧縮ファイルと認識されたものは自動的に解凍される。tar.bzなどはそのまま使いたいときもあるので、便利なようで不便なのかもしれない。

6
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?