🚀
【Windows】 LightGBM の Model format error について
環境
- windows
- python
- LightGBM
- Git
エラー内容
[LightGBM][Fatal] Model format error, expect a tree here, met --------
みたいなやつ
エラーの再現
- windows PC上でLightGBMのモデルを作成
-
model.save_model("models/lgbm.txt")
でモデルを保存 - GitHubでモデルごとpush
- 他のwindows PCでリポジトリのclone
-
model.predict()
でエラー発生
原因
どうやらGit for windowsでは改行コードを自動で変換してくれるだるいありがたい仕様があるそうです。
2.で作成した"models/lgbm.txt"はlightGBMの仕様上、widnows pcで作成しても改行コードはLFで出力されます。
しかし、4.でcloneしたときにwindows pcの場合、自動でCRLFに変換されるのでモデルの読み込みが失敗するみたいです。
そもそも学習モデルをtxtファイルで保存せず、pickleオブジェクトとかで保存すればエラーは起きないかもしれません。
解決策
下の.gitattributesを追加。
.gitattributes
* text=auto eol=lf
その後、CRLFになってしまっているファイルを一旦削除した後、
git checkout -f
で復活させると改行コードがLFになります。
Discussion