0.Intro
Colabで学習させたモデルの重みをCode Competitionで使いたいですよね(そのための学習!!)
でも重みを保存したGoogle Driveのデータをダウンロード→datasetにUploadは大変時間がかかります。
いろいろ探ったら昔は共有リンクをいじったらRemote Fileとして読み込めた(もしくはUpload)出来たらしいですが仕様変更で今では出来なさそうです。
ですので直接送れる方法はないかと探りました。
結果はシンプル、Kagle APIを使うでした。
このことを書いているところ、意外となかったので個人的にメモを兼ねて記事にしておきます。
1.方法
ColaboにGoogle Driveをマウント
/root/.kaggle/kaggle.jsonを配置
データセットのメタファイル(dataset-meta.json)を作成
kaggle datasets init -p /path/to/dataset
を実行するとひな形が作成されます。
パスはデータがあるフォルダです。
{
"licenses":[
{
"name":"CC0-1.0"
}
],
"id":"(username)/INSERT_SLUG_HERE",
"title":"INSERT_TITLE_HERE"
}
というようなファイルが出来ます。
4.dataset-meta.jsonを編集
編集するのは
・id
・title
だけで十分です。個人的ハマったのはidにアンダーバーが使えないことです
※アンダーバーを使うとアップロードの後に 400 Bad Requestになります
既存のデータセットのIDとタイトルを参考に適当につけましょう。
5.dataset作成
kaggle datasets create -p /path/to/dataset
を実行。パスはもちろんデータがあるフォルダです。
成功したら「Upload successful」と表示されます。
2.以上です
最初は惑いますがやってみると非常に簡単です。これで学習→サブミットの時間が短縮できてぐっと効率よくなりますね!!