かえるのプログラミングブログ

プログラミングでつまずいたところとその解決策などを書いていきます。

私がよく使う kaggle api command まとめた

こんばんは。kaerururu です。

今回は個人的にざっと調べてみても出てこなかった kaggle api command の使い方のチートシートのようなものを作ったので共有致します。

GitHub のリンク

https://github.com/osuossu8/Utils/blob/master/kaggle_api_usage.py

( i ) 解説など

セットアップやコンペデータの DL などはカレーさんのブログ他、Qiita 記事などに詳しく書かれているので参照されたし。

public のユーザーデータセットの DL についても kaggle datasets download -w (www.kaggle.com 以下をコピペ) で DL できるので問題ないと思います。

個人的にわからなかったのは dataset にファイルを api 経由でアップロードすることだったので少し解説します。

例えば、fuga.txt というファイルをアップロードしたいケース。

まず、hoge/fuga.txt となるように hoge というディレクトリを用意します。

そして、

kaggle datasets init -p hoge

を実行すると hoge/dataset-metadata.json というファイルが生成されます。

以下のようになっているので、

{
 "title": "INSERT_TITLE_HERE",
 "id": "kaerunantoka/INSERT_SLUG_HERE",
 "licenses": [
  {
   "name": "CCO-1.0"
  }
 ]
}

このように、 title と id を任意の文字列で書き換えます。

{
 "title": "hogefuga", # The dataset title must be between 6 and 50 character
 "id": "kaerunantoka/hogefuga",
 "licenses": [
  {
   "name": "CCO-1.0"
  }
 ]
}

title は 6-50 文字の範囲で書かないと怒られます。

最後に、

kaggle datasets create -p hoge

を実行すると、 https://www.kaggle.com/username/(入力した title)

のパスに fuga.txt がアップロードされます。

( i i ) まとめ

画像コンペやテキストコンペなどのコードコンペで何かとデータセットのアップロードの必要性が多い今日この頃、command でデータのアップロードができると非常にストレスフリーなので活用していただけると幸いです。

( i i i ) 参考

・導入部分(日本語)

http://www.currypurin.com/entry/2018/kaggle-api

・dataset のアップロード関連 (英語)

https://codelabs.developers.google.com/codelabs/upload-update-data-kaggle-api/index.html?index=..%2F..index#0

・本家本元 (英語)

https://github.com/Kaggle/kaggle-api/tree/84895cea61af708a24f0e8ad8307d570e82d8097

  • 追記
kaggle kernels output kaerunantoka/save-images-t-image2

kaggle notebook の output file を直接ダウンロードできます。便利。