多核中的R caret nnet包

时间:2013-09-09 17:35:52

标签: r parallel-processing r-caret

我们可以通过利用foreach包,nnet和插入包来使用多核并行训练神经网络模型吗?

我只看到并行的randomforest实现。神经网络是否可行。

我对插入符号的列车功能特别感兴趣,它可以对网格搜索最佳隐藏层和衰减大小。这需要很长时间才能在单核上运行。

感谢任何帮助。

2 个答案:

答案 0 :(得分:10)

是否正在寻求并行实施算法或重采样?如果您正在寻找以后的所有内容,只需通过registerDoMC()注册您想要使用的内核数量,它就会并行运行。例如:

> library(caret)
> library(doMC)
> 
> registerDoMC(4)
> tc <- trainControl(method="boot",number=25)
> train(Species~.,data=iris,method="nnet",trControl=tc)
# weights:  43
initial  value 596.751921 
iter  10 value 61.068365
iter  20 value 16.320051
iter  30 value 9.581306
iter  40 value 8.639828
iter  50 value 8.492001
iter  60 value 8.364661
iter  70 value 8.264618
iter  80 value 8.082598
iter  90 value 5.911050
iter 100 value 1.179339
final  value 1.179339 
stopped after 100 iterations
450 samples
  4 predictors
  3 classes: 'setosa', 'versicolor', 'virginica' 

No pre-processing
Resampling: Bootstrap (25 reps) 

Summary of sample sizes: 450, 450, 450, 450, 450, 450, ... 

Resampling results across tuning parameters:

  size  decay  Accuracy  Kappa  Accuracy SD  Kappa SD
  1     0      0.755     0.64   0.251        0.366   
  1     1e-04  0.834     0.758  0.275        0.401   
  1     0.1    0.964     0.946  0.0142       0.0214  
  3     0      0.961     0.941  0.0902       0.135   
  3     1e-04  0.972     0.958  0.0714       0.104   
  3     0.1    0.977     0.966  0.0108       0.0163  
  5     0      0.973     0.96   0.0579       0.0888  
  5     1e-04  0.987     0.98   0.00856      0.0129  
  5     0.1    0.978     0.966  0.0112       0.0168  

Accuracy was used to select the optimal model using  the largest value.
The final values used for the model were size = 5 and decay = 1e-04.

运行4核的屏幕截图: enter image description here

答案 1 :(得分:2)

doMC不支持R 3.2。你可以使用doParallel

library(doParallel);
cl <- makeCluster(detectCores())
registerDoParallel(cl)
tc <- trainControl(method="boot",number=25)
train(Species~.,data=iris,method="nnet",trControl=tc)
stopCluster(cl)