我正在使用此代码在 GPU 上训练 xgboost 模型
问题是同时使用 GPU (NVIDIA 1050) 和 CPU 内核。NVIDIA 系统监视器显示利用率为 85% 到 90%,Linux 系统监视器显示所有内核都在工作。
这里有两个问题
1 .当定义的tree_method为'gpu_hist'时,为什么xgb_cv同时使用两者
- 当模型使用“hist”而不是“gpu_hist”进行训练时,它只使用 CPU 内核在一半的时间内完成
谢谢
model_xgb = XGBClassifier(verbose= 1,objective = 'multi:softmax',num_classes=3,tree_method='gpu_hist',predictor = 'gpu_predictor')
xgb_cv = GridSearchCV(model_xgb,
{"colsample_bytree":[0.8,0.6]
,"min_child_weight":[0,5 ]
,'max_depth': [3,4,]
,'n_estimators': [500]
,'learning_rate' :[0.01, 0.1]},cv = 2,verbose = 1)
## Fit with cross validation
start_time = time.time()
xgb_cv.fit(X_train,Y_train,verbose = 1)
duration = (time.time() - start_time)/60
print("XGBOOST HyperParameter Tuning %s minutes ---" % + duration)