2017-05-13 3 views

Répondre

3

Pour autant que je peux dire, l'API Scikit apprendre ne supporte pas GPU. Vous devez utiliser l'API d'apprentissage (par exemple xgboost.train (...)). Cela vous oblige également à d'abord convertir vos données en xgboost DMatrix.

Exemple:

params = {"updater":"grow_gpu"} 
train = xgboost.DMatrix(x_train, label=y_train) 
clf = xgboost.train(params, train, num_boost_round=10) 

MISE À JOUR:

L'API prend en charge Scikit En savoir maintenant GPU via le ** argument kwargs: http://xgboost.readthedocs.io/en/latest/python/python_api.html#id1

1

je ne pouvais pas obtenir ce travail du pip installé XGBoost, mais j'ai extrait le dernier XGBoost de GitHub (git clone --recursive https://github.com/dmlc/xgboost) et l'ai compilé avec le drapeau PLUGIN_UPDATER_GPU qui m'a permis d'utiliser le GPU avec l'API sklearn. Cela m'a obligé à changer également certains indicateurs NVCC pour travailler sur ma GTX960 qui causait des erreurs de construction, puis des erreurs d'exécution dues à une incompatibilité d'architecture. Après avoir construit, j'ai installé avec pip install -e python-package/ dans le répertoire repo. Pour utiliser le Scikit apprendre API (en utilisant grow_gpu ou grow_hist_gpu):

import xgboost as xgb 
model = xgb.XGBClassifier(
    max_depth=5, 
    objective='binary:logistic', 
    **{"updater": "grow_gpu"} 
) 
model.fit(train_x, train_y) 

Si quelqu'un est intéressé par le processus de fixer la construction avec le drapeau du GPU, voici le processus que je suis passé par sur Ubuntu 14.04.

i) clone git clone git --recursive https://github.com/dmlc/xgboost

ii) cd Insto xgboost et make -j4 pour créer multi-thread, si aucun GPU est souhaitée

iii) de faire GPU, modifier faire/config .MK utiliser PLUGIN_UPDATER_GPU

iv) Modifier l'Makefile makefile, sur la section FPUNV d'utiliser le drapeau --gpu-architecture=sm_xx pour la version GPU (5,2 pour GTX 960) sur la ligne 101

#CODE = $(foreach ver,$(COMPUTE),-gencode arch=compute_$(ver),code=sm_$(ver)) TO 
CODE = --gpu-architecture=sm_52 

v) Exécutez le ./build.sh, il doit indiquer terminé en mode multi-thread ou FPUNV build a probablement échoué (ou une autre erreur, regardez ci-dessus pour l'erreur)

vi) Dans le virtualenv (si désiré) dans le même répertoire run pip install -e python-package/

ce sont des choses qui ont causé quelques erreurs de FPUNV pour moi:

i) Installation/mise à jour la boîte à outils Cuda en téléchargeant la boîte à outils cuda .deb de Nvidia (version 8.0 a fonctionné pour moi, et il est nécessaire dans certains cas?).

ii) Installation/mise à jour cuda

sudo apt-get update 
sudo apt-get install cuda 

iii) Ajouter nvcc à votre chemin.Iv) Un redémarrage peut être nécessaire si l'exécution de nvidia-smi ne fonctionne pas en raison de certaines mises à jour de cuda/driver/toolkit.