Распараллелить предсказание модели на основе большого растра в R - PullRequest
0 голосов
/ 18 марта 2019

Есть ли способ распараллелить цикл blockSize () в R, чтобы предсказывать несколько блоков одновременно?

В настоящее время я использую эти строки, чтобы предсказать мой растр, который занимает много времени, потому что мой стек довольно большой (~ 400 слоев):

  cs <- blockSize(tmpstack)  
eras <- writeStart(x = eras,filename = outfile,overwrite=TRUE)  
for(i in 1:cs$n){
    rawVal <- getValues(tmpstack,row = cs$row[i],nrows = cs$nrows[i])
    predv  <- predict(rf1,newdata=rawVal)
    eras   <- writeValues(eras,v = as.numeric(as.character(predv)),start =       cs$row[i])
  }
eras <- writeStop(eras)

Или есть другая возможность сделать это быстрее? С этим кодом я использую только 10% моей доступной мощности процессора.

1 Ответ

0 голосов
/ 19 марта 2019

См. raster::clusterR, особенно в последнем примере, поскольку вы можете предоставить распараллеленную функцию в качестве аргумента для predict.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...