【发布时间】:2019-11-28 11:37:30
【问题描述】:
我正在使用 doParallel 和 foreach 包来训练我拥有的数据集的 400 个小型 Keras 模型。
#1. Pre-make a blank data frame to be filled with values in the loop
Summary<-data.frame(ticker=character(), Today=numeric(), Tommorow=numeric(), MAPE=numeric(), stringsAsFactors=FALSE)
#2. Initialize cores to work
registerDoParallel(detectCores()-1)
#3. Implement for loop with parallel
foreach (i=1:400, .combine=c, .packages = c("keras", "tensorflow","dplyr","data.table")) %dopar% {
... code that filters data dynamically on [i] and fits the NN model...
Summary[i,]<-c(tickers[i],
as.numeric(Predict[length(Predict)]),
model%>%predict(PredictorsT)%>%as.numeric(),
MAPE)
}
并行过程运行,但在循环结束时,摘要数据框保持空白,这意味着每次迭代都无法填充数据。我怎样才能做到这一点?
【问题讨论】:
-
你不能在循环内全局保存结果,你需要用
res=foreach (...)和循环内的return语句将它们保存在循环外。 -
好的。怀疑是这个问题。我应该如何在循环中编写return语句来准备我需要的汇总数据
标签: r keras foreach doparallel