joblibでXGBを複数走らせる、forループでXGBを呼ぶ、hyperoptでパラメータ探索を行う….など、何回もXGBを呼んでしまうとGPUメモリを開放してくれずにエラーになることがあった。
predictが終わった段階で明示的にデストラクタを呼ぶことで、GPUメモリを開放することが出来た。
predict前にモデルを破棄してしまうとpredict出来なくなるので注意。
model = xgb.train(...)
pred = model.predict(...)
model.__del__()
参考
Xgboost GPU models do not release memory after training · Issue #3045 · dmlc/xgboost
Xgboost doesn't release gpu memory after training/predicting the model on large data. Every further rerun of .fit causes...
コメント