概要
kaggle初心者が学習済みモデルなどの保存の仕方をまとめてみました。
Kaggle notebookで作業しモデルを保存しひと段落。
後日Kernelを更新すると保存したはずのデータが消えている!なぜ!!
どうやったらモデルが半永久的に保存され続け、どのようにモデルを読み出すのかをまとめています。
私と同じくkaggle初心者向けの記事です。
保存ディレクトリ
まずnotebookで使用できるディレクトリを紹介します。
- ユーザが使用できる作業ディレクトリ:"./kaggle/working/"
- ユーザが一時的に使用できる作業ディレクトリ:"./kaggle/tmp/"
- 追加したデータセットが保存されているディレクトリ:"./kaggle/input/"
モデルは、
./kaggle/working/
に保存することになります。
保存方法
では本題の保存方法を解説していきます。
以下は学習済みモデルが該当ディレクトリに保存されていることが前提です。
file = 'trained_model.pkl'
pickle.dump(trained_model, open(file, 'wb'))
path ='/kaggle/working/'
fileList = os.listdir(path)
for f in fileList:
print(f)
- 右上の ( >| )マークを選択して、Toggle Sidebarを表示させる。
- Outputを選択し、学習済みモデルがあることを確認する。
- Save Versionを選択し現在のnotebookをcommitする。
- Toggle Sidebar右上に表示されている、Add dataを選択する。
- 上部Tool bar右に表示されている、Notebook Output Filesを選択する。
- Your Workでフィルタリングをして保存したいnotebookをADDする。
以上で保存が完了します。
モデルの読み出しは該当ファイルのpathを使用するAPIに従って渡せばOKです。
おわりに
Kaggle内のDiscussionに同じ様な悩みを抱えている方が大勢いました。
周りにわからない人を見つけたら教えてあげてください。
参考にさせていただいたサイトSaving and loading Pytorch models in Kaggleでは、動画付きの解説記事になっていますので是非確認してみてください。
お役に立つことを願っています。