问题标签 [furrr]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
763 浏览

r - 如何正确使用 R 未来 (furrr) 包中的集群计划

我目前正在使用furrr我的模型创建更有条理的执行。我使用 adata.frame以有序的方式将参数传递给函数,然后使用 将furrr::future_map()函数映射到所有参数。在我的本地机器(OSX)上使用顺序和多核期货时,该功能可以完美运行。

现在,我想测试创建自己的 AWS 实例集群的代码(如图所示

我使用链接的文章代码创建了一个函数:

然后,我创建集群对象,然后检查它是否连接到正确的实例

当我打印时,f我得到了我的一个远程实例的规格,这表明套接字已正确连接:

但是当我使用我的集群计划运行我的代码时:

我收到以下错误:

我无法弄清楚引擎盖下发生了什么,我也无法traceback()从我的远程机器上看到错误。我已经测试了与文章中示例的连接,并且事情似乎运行正常。我想知道为什么要tempdir在执行期间创建一个。我在这里想念什么?

(这也是repo中的一个问题)furrr

0 投票
1 回答
55 浏览

r - 映射列表并创建训练和测试拆分

我有一个数据框列表,我想将每个列表拆分为一个训练和测试集。

我正在尝试的是以下内容:

我在test代码部分遇到错误。

错误告诉我:

缺少参数“.f”,没有默认值

.f我要应用的功能是功能anti_join

数据:

0 投票
0 回答
90 浏览

r - 如何有效地保存多个并行化的 .rds 文件?

我将一个函数应用于不同的数据 ~2000 次,我想在每次迭代后保存 .rds 。我已经使用 furrr/foreach 对代码进行了并行化,所以目前它非常有效。但是,我不知道如何保存每次迭代的中间结果并同时保留计算时间。那么,是否可以有效地并行保存多个 .rds?

可重现的例子:

0 投票
0 回答
55 浏览

r - 在 R 中的数据列表上映射 keras NN

我试图找出将 keras 模型应用于我的每个列表的正确方法。我使用了iris数据集并创建了 4 个列表,目标是正确预测versicolorvirginica(我省略了setosa,因为我想要一个二元分类模型)。

我的问题发生在这里。当我应用以下代码时:

我收到此错误:

py_get_item_impl(x,key,FALSE)中的错误:TypeError:'Sequential'对象不支持索引

当我应用此代码时:

我收到此错误:

〜fit(x = .x,y = .y,epochs = 5,batch_size = 20,validation_split = 0)py_call_impl中的错误(callable,dots$args,dots$keywords):评估错误:无法将R对象转换为Python类型。

如何将 keras 模型映射到 4 个数据集中的每一个?

以下适用于第一个列表:

编辑:我似乎已经解决了。

将函数NN_model放入内部fit()似乎可以工作。

0 投票
2 回答
407 浏览

r - 完成后停止 furrr::future_map 打印迭代

我正在使用 future_map 创建几个图,在其中迭代变量列表并将每个变量的 png 文件输出/保存到文件夹中。所以没有需要在控制台或“绘图”窗格中显示的输出。

函数的绘图部分:

我如何映射函数:

但是,在创建所有文件之后,我可以看到它们在文件夹中,这是缓慢打印的(需要一段时间,~1k 次迭代):

有谁知道如何抑制这个输出?

非常感谢!

0 投票
1 回答
114 浏览

r - 什么是弗尔的“黑魔法”?

我使用 R 包furrr来满足我的大部分并行化需求,并且基本上从来没有将东西从我的全局环境导出到集群的问题。今天我做到了,我不知道为什么。包文档似乎将全局变量发送到集群的过程描述为“黑魔法”。黑魔法是什么?

furrr::future_options文档说:

全局变量和包 默认情况下,future 包将执行黑魔法来查找您的 furrr 调用所需的全局变量和包,并将这些导出到每个工作人员。但是,它并不总是完美的,可以使用 globals 和 packages 参数进行改进。

作为第二个问题:是否有一种优雅的方式来告诉它使用它的黑魔法,同时导出它错过的东西?或者,选择a)全是黑魔法,还是b)对.options参数中的所有内容进行硬编码?

0 投票
2 回答
311 浏览

r - furrr 中的环境/范围:在 future_map() 中嵌套 get()

我有兴趣了解更多关于如何furrr从全球环境中找到东西的信息,并普遍询问了它执行的黑魔法。这是我不理解的行为的一个具体示例,可以使用一些帮助:我需要在future_map调用中或在get调用"C"中更改"F"什么?

编辑

似乎这个问题在所有系统上都无法重现,并且可能与我的安装furrr.有关multiprocessmultisessionplan(strategy=multicore,...

0 投票
1 回答
37 浏览

r - Tidyr::crossing 2 个以上的参数 (..1,..2,..3)

我正在使用 tidyr::crossing 创建可能的参数组合,然后这些组合将成为 forecast.gts() 的输入。

由于我有超过 2 个参数,因此使用 ..x 表示法映射参数,即 ..1、..2、..3 https://purrr.tidyverse.org/reference/map2.html

但是,似乎每个组合的结果都是 NULL。

如果我要单独调用该函数,它会给我结果。

0 投票
0 回答
147 浏览

r - 如何在 glmnet 函数(而不是 cv.glmnet)中并行化 alpha

我将glmnet在面板数据集上使用包中的惩罚回归模型。作为面板意味着我将不使用交叉验证而是使用滚动原点来测试模型,因此我不会使用cv.glmnet仅适用于交叉验证的功能。相反,我将使用默认glmnet函数。这个函数有两个参数需要优化,lambdaalphalambda允许为数组,如果是,则为数组中的每个元素拟合一个模型,但alpha必须是标量。我有兴趣为不同的alpha值运行模型。到目前为止,我正在使用 for 循环按顺序执行此操作,如下例所示(在此示例中,BostonHousing为了简单起见,我使用数据集,尽管不是面板数据)

这种方法有效,但对我来说似乎效率很低,我考虑将它并行化。我尝试使用该furrr包(允许并行化purrr功能),但我面临两个问题:

问题 1

以下代码(假定)furrr按顺序运行:

但是使用 for 循环实现的解决方案与使用furrr. 例如,查看 和 的lambda=10系数alpha=0

问题 2

如果我尝试furrr并行运行,我会收到一条错误消息:

因此,任何帮助理解这里发生的事情,或提供并行运行它的替代方法将不胜感激。

0 投票
0 回答
263 浏览

r - 嵌套的 furrr::future_map?

有没有办法配置furrr::future_map允许嵌套用例?考虑以下代码:

第一个应该花费 2 秒多一点。还行吧。但是,即使在千核机器上,有没有办法让第二个机器花费不到 1 秒?

我的用例如下:一些子任务比其他子任务需要更长的时间才能完成,当一些子任务完成后,一些内核可以自由地进一步调度更长的任务。

但是 furrr 默认情况下不这样做,并且 lnger 运行的任务最终只在一个内核上。该问题等同于上面代码中显示的问题:如果某些内核空闲,有没有办法让 furrr 重新调度内部任务?

这是不可能的,还是我错过了 furrr/future 调用的参数?