2017-10-20 36 views
1

次のコードでは、xgboostのさまざまなハイパーパラメータを検索しようとしています。GPUがサポートされたXGBClassifierを使用した高速化はありません

param_test1 = { 
'max_depth':list(range(3,10,2)), 
'min_child_weight':list(range(1,6,2)) 
} 
predictors = [x for x in train_data.columns if x not in ['target', 'id']] 
gsearch1 = GridSearchCV(estimator=XGBClassifier(learning_rate =0.1, n_estimators=100, max_depth=5, 
               min_child_weight=1, gamma=0, subsample=0.8, colsample_bytree=0.8, 
               objective= 'binary:logistic', n_jobs=4, scale_pos_weight=1, seed=27, 
               kvargs={'tree_method':'gpu_hist'}), 
        param_grid=param_test1, scoring='roc_auc', n_jobs=4, iid=False, cv=5, verbose=2) 
gsearch1.fit(train_data[predictors], train_data['target']) 

私はkvargs={tree_method':'gpu_hist'}を使用していますが、私は実装に何のスピードアップを取得していません。

$ git clone --recursive https://github.com/dmlc/xgboost 
$ mkdir build 
$ cd build 
$ cmake .. -DUSE_CUDA=ON 
$ make -j 

可能な理由は何ですか:私はUbuntuの中で次のコマンドを使用してxgboostサポートGPUをインストールしている

+-----------------------------------------------------------------------------+ 
| NVIDIA-SMI 375.66     Driver Version: 375.66     | 
|-------------------------------+----------------------+----------------------+ 
| GPU Name  Persistence-M| Bus-Id  Disp.A | Volatile Uncorr. ECC | 
| Fan Temp Perf Pwr:Usage/Cap|   Memory-Usage | GPU-Util Compute M. | 
|===============================+======================+======================| 
| 0 GeForce GTX 1080 Off | 0000:01:00.0  On |     N/A | 
| 0% 39C P8 10W/200W | 338MiB/8112MiB |  1%  Default | 
+-------------------------------+----------------------+----------------------+ 

+-----------------------------------------------------------------------------+ 
| Processes:              GPU Memory | 
| GPU  PID Type Process name        Usage  | 
|=============================================================================| 
| 0  961 G /usr/lib/xorg/Xorg        210MiB | 
| 0  1675 G compiz           124MiB | 
| 0  2359 G /usr/lib/firefox/firefox       2MiB | 
+-----------------------------------------------------------------------------+ 

nvidia-smiによると、GPUは多くの計算に関与していませんか?

+0

あなたはCUDAツールキットとGPUのxgboostが正しくインストールされていますか? 'tree_method ':' gpu_hist'を 'kvargs {}'にラップせずに試してみてください。他のすべてのパラメータと同じです。 –

+0

@VivekKumarはい、そうだと思います。 'tree_method'パラメータについては、通常のパラメータとして定義されていないと考えて、kvargsに含める必要があります。 – Hossein

+0

解決策はありますか?問題は私のために実際です。 – QtRoS

答えて

0

私は2つのことを改訂したいと思います。 Ubuntuの中xgboostの設置、

は-j4

を作り、ヴィヴェックの意見表明のためとして、私はあなたが以下に「tree_method」パラメータの小枝の敬意をチェックしたいと思います。

http://xgboost.readthedocs.io/en/latest/parameter.html