2

R で xgb.cv と xgboost を使用しています。

私のコード例は次のとおりです

library(xgboost)
library(parallel)
param <- list("objective" = "reg:logistic"
          , "eval_metric" = "logloss"
          ,"nthread" = 8
          ,"bst:eta" = .025
          ,"bst:max_depth" = 3
          ,"lambda" = 1
          ,"lambda_bias" = 0
          ,"alpha" = .8
          ,"min_child_weight" = 3
          ,"subsample" = .9
          ,"colsample_bytree" = .6)
bst.cv3 = xgb.cv(param=param, data = x, label = y,
             nfold = 3, nrounds=cv.nround, missing = NA
             ,prediction = TRUE)

ただし、上記のコードは機能しません。それらを平行にするために私は何をしなければなりませんか?

xgboostウェブサイトとgithubでこれを見つけたことがあります

  1. https://github.com/dmlc/xgboost/blob/master/doc/build.md#building-on-osx

  2. https://github.com/dmlc/xgboost/issues/276

しかし、私は走ることができません

brew install clang-omp

また

brew install gcc --without-multilib

sudoでも機能しませんありがとう

4

3 に答える 3

5

残念ながら、以前に選択した回答は古くなっています。このclang-ompパッケージは自作では利用できなくなりました。だからここに私のために働いたものがあります。

まず、シェルで:

brew reinstall gcc --without-multilib

次に、次の内容でファイル~/.R/Makevarsを作成し、パスを更新して、インストールされている gcc バージョンの自作が正しく反映されるようにします。

CC=/usr/local/Cellar/gcc/6.1.0/bin/gcc-6
CXX=/usr/local/Cellar/gcc/6.1.0/bin/g++-6
SHLIB_CXXLD=/usr/local/Cellar/gcc/6.1.0/bin/g++-6
FC=/usr/local/Cellar/gcc/6.1.0/bin/gfortran-6
F77=/usr/local/Cellar/gcc/6.1.0/bin/gfortran-6
MAKE=make -j8

SHLIB_OPENMP_CFLAGS=-fopenmp
SHLIB_OPENMP_CXXFLAGS=-fopenmp
SHLIB_OPENMP_FCFLAGS=-fopenmp
SHLIB_OPENMP_FFLAGS=-fopenmp

最後に、R または RStudio を再起動し、ソースからパッケージを再インストールします。

ちなみに、 https://asieira.github.io/using-openmp-with-r-packages-in-os-x.htmlでこれに関する小さなブログ投稿を書きました。

于 2016-07-21T20:56:43.420 に答える
3

わかりました、私はこれを理解しました。

新しいファイルvi ~/.R/Makevars を作成し、これをドロップします

CC=clang-omp
CXX=clang-omp++
CXX1X=clang-omp++
SHLIB_OPENMP_CFLAGS=-fopenmp
SHLIB_OPENMP_CXXFLAGS=-fopenmp
SHLIB_OPENMP_FCFLAGS=-fopenmp
SHLIB_OPENMP_FFLAGS=-fopenmp

次に、でインストールします install.packages("xgboost", repos="http://dmlc.ml/drat/", type = "source")

それでもうまくいかない場合は、brew を使用して clang と gcc をインストールします

brew reinstall clang-omp

次に、上記のコードを実行します。

于 2016-03-29T01:33:06.903 に答える
0

これは、最近の xgboost コミットで修正されたようです [1]

[1] https://github.com/dmlc/xgboost/commit/d754ce7dc19e0d7c7465999d464e13f9bf21b40d

于 2016-08-23T19:01:54.673 に答える