kaggle apiを利用してNotebook Submitの際に送信情報を監視し, 実行時間等を取得するためのツール.
SlackやDiscordのWebhook機能を利用してLBや実行時間等を含めてメッセージを送信する.
コンペでの活用例.
9時間(540分)の制限に対して, あと程度処理が可能かなどを検討する際に有用であった.
Python で kaggle API を利用できるようにする.
すでに利用できている人には不要な項目なのでスキップ.
いままで利用していなければ https://www.kaggle.com/settings/account から Create New Token を実行.
# Windows:
C:\\Users\\<username>\\.kaggle
# Linux:
/home/<username>/.kaggle
上記パスに kaggle.json を配置する.
kaggle competitions submissions -c xxxx
# (xxxx部分はコンペティションを指定する)
に対して fileName, date などの列が表示されれば準備できている.
上記の xxxx 部分は main.py にも使用するのでコピーしておく.
注意
事前にkaggle APIを実行可能および認証情報を取得していることが必要になる.
本コードではDiscordを想定している
main.py のコードを編集してWebhook送信先URLおよびコンペID、Max/Minなどを編集する.
実行することで監視を開始.
python main.py
report/xxxx.csv というファイルを生成する (ログファイル).
Ctrl+Cで停止できる. quit というファイルを作っても停止可能.
注意
起動している間にネットワーク疎通ができず、かつその間に submit が終了した場合は
submit時間が正しく計測できないので注意すること.
Slackのテストをしていないので json などの指定ミスはあるかもしれない.