このコードを使用して、GPU で xgboost モデルをトレーニングしています
問題は、GPU (NVIDIA 1050) と CPU コアの両方が同時に使用されていることです。NVIDIA システム モニターは 85 ~ 90% の使用率を示し、Linux システム モニターはすべてのコアが動作していることを示します。
ここには2つの問題があります
1.定義されたtree_methodが「gpu_hist」の場合、xgb_cvが両方を使用するのはなぜですか
- モデルが「gpu_hist」ではなく「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)