提问人:user7431005 提问时间:11/10/2023 最后编辑:talonmiesuser7431005 更新时间:11/10/2023 访问量:206
XGBoost 警告:当输入数据在 cpu 上时,在 cuda 上运行
XGBoost warning: running on cuda while input data is on cpu
问:
我尝试使用 GPU 加速训练 XGBoost 模型。 使用 gridsearch 训练模型时,我收到以下警告:
用户警告: [17:29:04] 警告: /workspace/src/common/error_msg.cc:58:回退到预测 由于设备不匹配而使用 DMatrix。这可能会导致更高的 内存使用率和性能降低。XGBoost 运行于:cuda:0, 当输入数据打开时:CPU。可能的解决方案:
- 使用与助推器中的设备序号匹配的数据结构。
- 在呼叫inplace_predict之前将设备设置为助推器。
尽管给出了一些潜在的解决方案,但我不确定如何解释它们以及如何处理这些信息。
令人惊讶的是,它仅在使用 GridSearchCV 时出现。
在我下面的最小示例中,如果我直接使用而不是 .reg
gs
我的和变量来自我使用 pandas 读取的 hdf5 文件。
谁能给我一个提示,告诉我如何改进我的代码以不发出警告?X
y
import xgboost as xgb
from sklearn.model_selection import GridSearchCV
import numpy as np
if __name__ == "__main__":
X = np.random.randn(100,2)
y = np.random.randn(100)
reg = xgb.XGBRegressor(device="cuda", tree_method="hist", max_depth=10, n_estimators=100)
param_grid = {"gamma": [0.3]}
gs = GridSearchCV(reg, param_grid, cv=5)
gs.fit(X,y) # warning
# reg.fit(X,y) # no warning
包:
xgboost==2.0.1
scikit-learn==1.3.2
答: 暂无答案
评论
parallel