この記事ではGoogle Cloud Platformと、Kaggle APIを用いてKaggleの容量が大きなデータでも、ローカルよりも速い速度でダウンロードするということをやります。
具体的にはGoogle Cloud Engineで仮想マシンを立ち上げ、そのマシン上でKaggle APIを使いデータをダウンロードします。GCP上の仮想マシンはGoogleの回線を使っているので、普通に自宅のwifiなどを使うよりは断然速くダウンロードすることができます。
対象者
- 最近Kaggleを始めた人
- GCP上でKaggleをやってみたい人
- データでかすぎてうぜえって思った人
概要
- GCEインスタンス立ち上げ
- Kaggle API導入
- Kaggle データセットダウンロード
前提条件
- GCPを使える
- Kaggleに登録している
1 GCEインスタンス立ち上げ
まずはGCPのコンソール画面からGCEというサービスで仮想マシンを立ち上げます。
(そもそもGCEって? https://qiita.com/oosha/items/746dc4a9ad16f5a6beac)
左のサイドバーのComputed Engineから、インスタンスを作成する
インスタンスの名前は任意の名前
リージョンはサーバーの場所,今回はeastUS1にする。(場所によっては無料枠でなくなる、アメリカの方が何かとアクセスが早い)
マシンのメモリは、30GB(120GBとかは大学の研究などのレベル)
料金に関しては
https://cloud.google.com/compute/pricing?hl=ja
メモリの若干の目安
ブートディスクはubuntsu16,サイズは50GBくらいあればいい
アクセス権は全て許可
ファイアウォールも全てチェック
作成ボタンを押して、少し待つとインスタンスが立ち上がる
興味があれば下の記事もご覧になってみてください。
ローカルのターミナルからssh通信でGCSに接続する方法
https://qiita.com/matken11235/items/e4e7de36ef5f01f1d1d7
出来るだけ安くGCEを使う方法
https://qiita.com/Brutus/items/22dfd31a681b67837a74
2 Kaggle APIの導入
次にKaggle APIを仮想マシンに導入します。
まずは仮想マシンにSSH通信というもので仮想マシンのシェルに入ります。
これはとても簡単で下の画像のように、SSHというボタンをクリックするだけで入ることができます。
次にシェルでpip install kaggle
というコマンドを打ち込みでAPIをインストールします。
次にKaggleにログインし、アカウントページからcreate API Tokenを作る
kaggle.jsonファイルがダウンロードされる
そのファイルの中身を仮想マシンに移します。方法はいろいろありますが、今回は簡単にファイルを作成してコピペするなどして貼り付けます。
touch ~/.kaggle/kaggle.json
vimやemacsなどのファイル編集ソフトでファイルにコピペする
kaggle.jsonのパーミッションを600にする。以上で、kaggleコマンドが使えるようになります。
chmod 600 ~/.kaggle/kaggle.json
3 Kaggle データセットダウンロード
kaggle コマンド
まずは簡単にKaggelコマンドの使い方について
kaggle -h
と後ろに-hをつけてやると、次のようにhelpが表示されるので、helpを見ながら使えばそんなに困らない感じです。
コマンド例 | 結果 |
---|---|
kaggle competitions list | コンペの一覧を取得 |
kaggle competitions files -c titanic | タイタニックコンペのデータサイズ等を表示 |
kaggle competitions download -c titanic | タイタニックコンペのデータをダウンロード |
kaggle competitions submit -c titanic -f pred.csv -m test |
タイタニックコンペにpred.csvをサブミット。 メッセージはtest |
kaggle competitions submissions -c titanic | タイタニックコンペの自分のサブミット一覧を表示 |
実際にkaggleのデータセットをダウンロードします。(早い)
kaggle competitions download -c titanic
このような感じてKaggleのデータをダウンロードすることができます。
しかし、毎回環境構築するのは面倒なので下の記事を参考に、環境構築を自動化するなど工夫するといいです。
[GCPとDockerでKaggle用計算環境構築]
(https://qiita.com/lain21/items/a33a39d465cd08b662f1)