XGBoost 模型:在 GPU 上训练,在 CPU 上运行,无需分配 GPU RAM

问题描述 投票:0回答:1

如何在 GPU 上训练 XGBoost 模型,但在 CPU 上运行预测而不分配任何 GPU RAM

我的情况:我使用

tree_method='gpu_hist'
在 Python 中创建一个 XGBoot 模型(
predictor='cpu_predictor'
),然后在 GPU 上训练它,然后将其保存(pickle)到磁盘,然后从磁盘读取模型,然后使用它用于预测。

我的问题:一旦模型开始进行预测,即使我在 CPU 上运行它,它仍然会分配一些少量的 GPU RAM(大约 289MB)。这是一个问题,原因如下:

  • 我运行模型的多个副本来并行化预测,如果运行太多,预测过程就会崩溃。
  • 如果我同时在同一台机器上运行预测,我无法使用 GPU 来训练其他模型。

那么,如何告诉 XGBoost 不分配任何 GPU RAM 并仅使用 CPU 和常规 RAM 进行预测?

非常感谢您的帮助!

python gpu cpu xgboost predict
1个回答
0
投票

这可能是由于模型被保存为pickle

当我以 JSON 或 BIN 格式加载并重新保存模型时,问题就消失了。

© www.soinside.com 2019 - 2024. All rights reserved.