问题标签 [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.
r - 如何正确使用 R 未来 (furrr) 包中的集群计划
我目前正在使用furrr
我的模型创建更有条理的执行。我使用 adata.frame
以有序的方式将参数传递给函数,然后使用 将furrr::future_map()
函数映射到所有参数。在我的本地机器(OSX)上使用顺序和多核期货时,该功能可以完美运行。
现在,我想测试创建自己的 AWS 实例集群的代码(如图所示)。
我使用链接的文章代码创建了一个函数:
然后,我创建集群对象,然后检查它是否连接到正确的实例
当我打印时,f
我得到了我的一个远程实例的规格,这表明套接字已正确连接:
但是当我使用我的集群计划运行我的代码时:
我收到以下错误:
我无法弄清楚引擎盖下发生了什么,我也无法traceback()
从我的远程机器上看到错误。我已经测试了与文章中示例的连接,并且事情似乎运行正常。我想知道为什么要tempdir
在执行期间创建一个。我在这里想念什么?
(这也是repo中的一个问题)furrr
r - 映射列表并创建训练和测试拆分
我有一个数据框列表,我想将每个列表拆分为一个训练和测试集。
我正在尝试的是以下内容:
我在test
代码部分遇到错误。
错误告诉我:
缺少参数“.f”,没有默认值
.f
我要应用的功能是功能anti_join
。
数据:
r - 如何有效地保存多个并行化的 .rds 文件?
我将一个函数应用于不同的数据 ~2000 次,我想在每次迭代后保存 .rds 。我已经使用 furrr/foreach 对代码进行了并行化,所以目前它非常有效。但是,我不知道如何保存每次迭代的中间结果并同时保留计算时间。那么,是否可以有效地并行保存多个 .rds?
可重现的例子:
r - 在 R 中的数据列表上映射 keras NN
我试图找出将 keras 模型应用于我的每个列表的正确方法。我使用了iris
数据集并创建了 4 个列表,目标是正确预测versicolor
或virginica
(我省略了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()
似乎可以工作。
r - 完成后停止 furrr::future_map 打印迭代
我正在使用 future_map 创建几个图,在其中迭代变量列表并将每个变量的 png 文件输出/保存到文件夹中。所以没有需要在控制台或“绘图”窗格中显示的输出。
函数的绘图部分:
我如何映射函数:
但是,在创建所有文件之后,我可以看到它们在文件夹中,这是缓慢打印的(需要一段时间,~1k 次迭代):
有谁知道如何抑制这个输出?
非常感谢!
r - 什么是弗尔的“黑魔法”?
我使用 R 包furrr
来满足我的大部分并行化需求,并且基本上从来没有将东西从我的全局环境导出到集群的问题。今天我做到了,我不知道为什么。包文档似乎将全局变量发送到集群的过程描述为“黑魔法”。黑魔法是什么?
furrr::future_options
文档说:
全局变量和包 默认情况下,future 包将执行黑魔法来查找您的 furrr 调用所需的全局变量和包,并将这些导出到每个工作人员。但是,它并不总是完美的,可以使用 globals 和 packages 参数进行改进。
作为第二个问题:是否有一种优雅的方式来告诉它使用它的黑魔法,同时导出它错过的东西?或者,选择a)全是黑魔法,还是b)对.options
参数中的所有内容进行硬编码?
r - furrr 中的环境/范围:在 future_map() 中嵌套 get()
我有兴趣了解更多关于如何furrr
从全球环境中找到东西的信息,并普遍询问了它执行的黑魔法。这是我不理解的行为的一个具体示例,可以使用一些帮助:我需要在future_map
调用中或在get
调用"C"
中更改"F"
什么?
编辑
似乎这个问题在所有系统上都无法重现,并且可能与我的安装furrr.
有关multiprocess
multisession
plan(strategy=multicore,...
r - Tidyr::crossing 2 个以上的参数 (..1,..2,..3)
我正在使用 tidyr::crossing 创建可能的参数组合,然后这些组合将成为 forecast.gts() 的输入。
由于我有超过 2 个参数,因此使用 ..x 表示法映射参数,即 ..1、..2、..3 https://purrr.tidyverse.org/reference/map2.html
但是,似乎每个组合的结果都是 NULL。
如果我要单独调用该函数,它会给我结果。
r - 如何在 glmnet 函数(而不是 cv.glmnet)中并行化 alpha
我将glmnet
在面板数据集上使用包中的惩罚回归模型。作为面板意味着我将不使用交叉验证而是使用滚动原点来测试模型,因此我不会使用cv.glmnet
仅适用于交叉验证的功能。相反,我将使用默认glmnet
函数。这个函数有两个参数需要优化,lambda
和alpha
。lambda
允许为数组,如果是,则为数组中的每个元素拟合一个模型,但alpha
必须是标量。我有兴趣为不同的alpha
值运行模型。到目前为止,我正在使用 for 循环按顺序执行此操作,如下例所示(在此示例中,BostonHousing
为了简单起见,我使用数据集,尽管不是面板数据)
这种方法有效,但对我来说似乎效率很低,我考虑将它并行化。我尝试使用该furrr
包(允许并行化purrr
功能),但我面临两个问题:
问题 1
以下代码(假定)furrr
按顺序运行:
但是使用 for 循环实现的解决方案与使用furrr
. 例如,查看 和 的lambda=10
系数alpha=0
:
问题 2
如果我尝试furrr
并行运行,我会收到一条错误消息:
因此,任何帮助理解这里发生的事情,或提供并行运行它的替代方法将不胜感激。
r - 嵌套的 furrr::future_map?
有没有办法配置furrr::future_map
允许嵌套用例?考虑以下代码:
第一个应该花费 2 秒多一点。还行吧。但是,即使在千核机器上,有没有办法让第二个机器花费不到 1 秒?
我的用例如下:一些子任务比其他子任务需要更长的时间才能完成,当一些子任务完成后,一些内核可以自由地进一步调度更长的任务。
但是 furrr 默认情况下不这样做,并且 lnger 运行的任务最终只在一个内核上。该问题等同于上面代码中显示的问题:如果某些内核空闲,有没有办法让 furrr 重新调度内部任务?
这是不可能的,还是我错过了 furrr/future 调用的参数?