Bonjour,

J'essaye d'utiliser la bibliothèque doParallel mais j'obtiens une erreur, apparemment ça viendrait du fait que je crée un fichier dans la boucle mais je ne sais pas comment résoudre ce problème.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
 
library(doParallel)
 
outDir <- paste0("outDir")
dir.create(outDir)
 
ncores <- 2
cl <- makeCluster(ncores)
registerDoParallel(cl)
 
method <- c("svmLinear")
tuneGrid <- list(expand.grid(C=5))
res <- as.data.frame(matrix(data = rnorm(20),nrow = 10, ncol = 2))
res$act <- c(1:10)
foreach(i=1:length(method), .packages=c('caret')) %dopar%
{
  t1 <- Sys.time(); 
 # Entraînement
  model <- caret::train(act ~.,data = res,
                        method=method[i],
                        trControl = trainControl(method = "cv", number=10,savePredictions=T),
                        tuneGrid=tuneGrid[[i]])
  t2 <- Sys.time()
  # Création du fichier
  conn <- file( sprintf(outDir,"/", method[i],".txt") , open = "a" )
  l <- list("method" = model$method, "results" = model$results[1:3],
            "cross-validation" = model$control$method, "temps" = difftime(t2, t1))
  # Écriture
  write.table(l, conn , append = TRUE , col.names = T )
  # Fermeture du fichier
  close(conn)
 
} 
 
stopCluster(cl)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Error in { : task 1 failed - "impossible d'ouvrir la connexion"