当使用“L'Ecuyer-CMRG”RNG 时,R 不会重置种子?

2023-11-23

我在 R 中做了一些并行模拟,我注意到种子 使用“L'Ecuyer-CMRG”rng 时不会更改。我正在读书 “Parallel R”一书,选项 mc.set.seed = TRUE 应该给出 每次调用 mclapply() 时,每个工作人员都会获得一个新种子。

这是我的代码:

library(parallel)
RNGkind("L'Ecuyer-CMRG")

mclapply(1:2, function(n) rnorm(n), mc.set.seed = TRUE)
[[1]]
[1] -0.7125037

[[2]]
[1] -0.9013552  0.3445190

mclapply(1:2, function(n) rnorm(n), mc.set.seed = TRUE)
[[1]]
[1] -0.7125037

[[2]]
[1] -0.9013552  0.3445190

编辑:同样的事情发生在我的台式机和笔记本电脑上(均为 Ubuntu 12.04 LTS)。


在我看来,如果您想保证 R 会话中对 mclapply 的后续调用获得不同的随机数,您需要使用不同的值调用 set.seed,删除全局变量“.Random.seed”,或生成在再次调用 mclapply 之前,该 R 会话中至少有一个随机数。

出现此行为的原因是 mclapply(与 mcparallel 不同)在内部调用 mc.reset.stream。这会将“parallel”包中隐藏的种子重置为“.Random.seed”的值,因此,如果再次调用 mclapply 时“.Random.seed”没有更改,则由 mclapply 启动的工作程序将获得与之前相同的随机数。

请注意,clusterApply 和 parLapply 等函数的情况并非如此,因为它们使用持久工作线程,因此会继续从 RNG 流中抽取随机数。但每次调用 mclapply 时都会有新的工作线程被分叉,这可能会让这种行为变得更加困难。

以下是使用 mclapply 将种子设置为不同值以便获取不同随机数的示例:

RNGkind("L'Ecuyer-CMRG")
set.seed(100)
mclapply(1:2, function(i) rnorm(2))
set.seed(101)
mclapply(1:2, function(i) rnorm(2))

以下是删除“.Random.seed”的示例:

RNGkind("L'Ecuyer-CMRG")
mclapply(1:2, function(i) rnorm(2))
rm(.Random.seed)
mclapply(1:2, function(i) rnorm(2))

这是在主机上生成随机数的示例:

RNGkind("L'Ecuyer-CMRG")
mclapply(1:2, function(i) rnorm(2))
rnorm(1)
mclapply(1:2, function(i) rnorm(2))

我不确定哪种方法是最好的方法,但这可能取决于您想要做什么。

尽管看起来简单地多次调用 mclapply 而不更改“.Random.seed”会产生可重现的结果,但我不知道这是否得到保证。为了保证可重现的结果,我认为你需要调用 set.seed:

RNGkind("L'Ecuyer-CMRG")
set.seed(1234)
mclapply(1:2, function(i) rnorm(2))
set.seed(1234)
mclapply(1:2, function(i) rnorm(2))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当使用“L'Ecuyer-CMRG”RNG 时,R 不会重置种子? 的相关文章

  • R - 正则表达式错误(PCRE 版本)

    我正在尝试使用koRpus在 R 中在运行 RHEL6 的 Linux 服务器上进行词形还原 上周 当我安装了 MRO Microsoft R Open 3 2 3 时 下面的代码效果很好 library koRpus lw c danci
  • 如果“testthat”测试在“R”中失败,则打印自定义诊断信息

    I use a testthat单元测试来检查是否data frame函数返回的结果与我期望它返回的结果相同 如果测试失败 testthat打印一些诊断信息 例如 MyFunction df orig is not identical to
  • 如何使用 r 中的 caret 包在最佳调整超参数的 10 倍交叉验证中获得每次折叠的预测?

    我试图使用 R 中的插入符包使用 10 倍交叉验证和 3 次重复来运行 SVM 模型 我想使用最佳调整的超参数获得每次折叠的预测结果 我正在使用以下代码 Load packages library mlbench library caret
  • R从列表中提取数据框,列名中没有前缀

    我在列表中放置了一个数据框 然后 当尝试将其提取回来时 我得到了该数据帧的所有以列表键为前缀的列名称 有没有办法完全按照最初传递的方式提取数据帧 cols lt c column1 Column2 Column3 df1 lt data f
  • 将summary()写入as.data.frame以在ggplot / R中使用

    请查找 af 数据样本t below 我正在使用以下方法进行竞争风险分析etmCIF来自etm package 产生以下结果 这很好 但需要更好的图形 曾经有一个ggtrans etm函数将数据导入ggplot 然而 这个功能显然被删除了
  • 使用 ggplot2 修改点子集的形状

    我正在尝试绘制一个沿大量维度变化的大型散点图 这是我的起始情节 p lt ggplot mtcars aes wt mpg shape cyl colour gear size carb geom point 使用mtcars数据集 我只是
  • dplyr 中的 Summarize 是否可以不删除数据框中的其他列?

    我有一个包含三列的数据框 我正在尝试进行简单的总结以查找数据框中每个城市的最高温度 但同时保留每个最高温度列出的日期 这是数据框 我们称之为 maxT new ID Date Max TemperatureF 1 TUS 1960 04 0
  • 使用底格里斯河从纬度/经度获取人口普查区

    我有相对较多的坐标 我想获取其人口普查区 除了 FIPS 代码 我知道我可以使用以下命令查找各个纬度 经度对call geolocator latlon 已完成here https stackoverflow com questions 5
  • ggplot 中的错误问题:“grid.Call(”L_textBounds“, as.graphicsAnnot(x$label), x$x, x$y, … 中的错误”[重复]

    这个问题在这里已经有答案了 我试图在 ggplot 中制作一个条形图 其中我通过强制其中一些标签为长度为零的字符串 即 来指定要显示的标签 但是 我收到错误 Error in grid Call L textBounds as graphi
  • 使用 dplyr:group_by 将数据帧分成多个子集?

    有没有办法根据 group by 组使用 dplyr 将一个数据帧拆分为数据帧的子集 mtcars gt group by cyl gear gt codes 非常感谢 好吧 并不是你真的想要 但你可以这样做tidyr 即nearly一样的
  • 如何获得属于五分位数的x?

    我正在大学学习使用 R 进行计量经济学项目 所以请原谅我的笨拙 基本上 使用并给出 一个矩阵 股票价格 行 天 列 公司股票价格 另一个矩阵 市值 行 天 列 公司市值 我必须收集第三个矩阵每天观察的属于市值分布第一五分位数的股票价格 然后
  • R:将 readRDS 应用于 .Rds 文件名的列表对象

    我有几个包含数据帧对象的 Rds 文件 我想对每个文件应用一个函数并将数据帧绑定到单个数据帧中 但是 当我尝试从文件名列表中读取多个 Rds 文件时 我收到错误 FUN X i 中的错误 从连接读取时出错 readRDS 不适用于列表吗 R
  • 在 R 中绘制对数正态概率密度

    我正在尝试在 R 中生成对数正态概率密度图 其中包含 3 个不同的均值对数和标准差对数 我尝试了以下方法 但我的图表太丑了 看起来一点也不好看 x lt seq 0 10 length 100 a lt dlnorm x meanlog 0
  • 根据另一列中的键累积一列中的值时出现问题

    我有一个看起来像这样的数据框 我需要使用 PROJ ID 列中的字符串创建一个新的值列 并形成 PROJ NAME 列中的值字符串 这里提供的解决方案 根据 r 中另一列的键累积一列中的值 https stackoverflow com q
  • fread 将空导入为 NA

    我正在尝试导入带有空白的 csv 读取为 不幸的是他们都读作 NA now 为了更好地演示问题 我还展示了如何NA NA and 都映射到同一事物 除了最底部的示例 这将妨碍简单的解决方法dt is na dt lt gt write cs
  • 表单提交时出现 rvest 错误

    我想从以下网页中抓取数据 https swgoh gg u zozo collection 180 emperor palpatine https swgoh gg u zozo collection 180 emperor palpati
  • ggplot散点图中的图例问题

    我想使用 ggplot 创建显示方法比较数据的散点图 绘图应包含原始数据 理想线和带误差的拟合线 图例应显示理想线和拟合线的线型 线宽 线颜色 我可以获得大部分我想要的东西 但是图例存在以下问题 图例显示每种线型有 2 条线 为什么 如何解
  • 如何在R中同时对三个字段进行网络分析

    如何在 R 中同时对三个字段进行网络分析 下面是示例数据以及desired output在最后一栏中 df lt data frame stringsAsFactors FALSE id 1 c ABC ABC BCD CDE DEF EF
  • 具有 dplyr、tidyverse 和 broom 的相关矩阵 - P 值矩阵

    全部 我想使用以下方法从相关矩阵中获取 p 值dplyr 和 或扫帚包 并同时测试多个变量 我知道其他方法 但 dplyr 对我来说似乎更简单 更直观 此外 dplyr 需要关联每个变量以获得特定的 p 值 这使得该过程更容易 更快 我检查
  • 单击 R 中的 Sankey Chart 线时添加额外的标签值

    以下 R 闪亮脚本创建一个桑基图 如下面的快照所示 我的要求是 当我单击左右节点之间的任何链接 即 a1 和 a2 时 我希望相应的 a3 的总和出现在标签中 例如 a1 中的 A 和 a2 中的 E 总共具有值 50 和 32 因此 我想

随机推荐

  • 如何修改文本文件?

    我正在使用 Python 并且希望将字符串插入到文本文件中 而不删除或复制该文件 我怎样才能做到这一点 不幸的是 没有办法在不重写文件的情况下插入到文件的中间 正如之前的海报所示 您可以使用查找附加到文件或覆盖文件的一部分 但如果您想在开头
  • 如何在android中使用getSharedPreferences

    我有一个应用程序 我必须在其中实现 登录 活动 我有这些组件 编辑文本用户名 编辑文本密码 按钮登录 按钮取消 我希望我的应用程序在用户登录后记住用户的登录详细信息 直到用户按下 注销 按钮 我没有在 xml 中使用首选项 如何让 getS
  • SpringData MongoDB 使用投影

    我可以通过它们使用 mongodb 投影功能从文档中获取选定的字段吗 即使在互联网上搜索了一整天也找不到任何线索 这是相关部分有关存储库的文档 还有查询文档部分有一个简短的提及 使用时MongoOperations你可以使用Query实例将
  • ionic 3 中的“运行时错误区已加载”

    我正在 ionic 3 和 Firebase 版本 4 13 1 上的 Firebase 身份验证中开发我的项目 我安装了 Angularfire2 我创建了一个注册表单 并在使用 ionic lab 测试我的应用程序时成功将用户详细信息放
  • 使用 PowerShell v2 从大文本文件中获取行的子集

    我正在处理一个大文本文件 我的意思是超过 100 MB 大 我需要循环遍历特定数量的行 这是一种子集 所以我正在尝试使用这个 info Get Content Path TextFile Select Object Index from t
  • 哪些版本的 Android 支持哪些包签名算法?

    鉴于我想支持所有 Android 设备 例如 Froyo或者稍后 我可以使用的最安全的签名算法是什么 我不需要放置我的APK in 安卓市场 例如 我知道有些手机支持sha1withrsa但不是sha256withrsa Link 请参阅A
  • AngularJS 中的 ScrollTo 函数

    我正在尝试让快速导航正常工作 它漂浮在一边 当他们点击链接时 就会转到页面上的该 ID 我正在关注这个树屋指南 这就是我的滚动内容 quickNav a click function var quickNavId this attr hre
  • 找不到 CrystalImageHandler.aspx

    我在 MVC3 应用程序的普通 ASP NET aspx 页面上使用 Crystal 报表查看器 在控制器操作中 我只是重定向到 aspx 页面 报告显示正常 但问题在于动态图像 我找到了最简单的解决方案 将图像路径作为报告参数传递 并将该
  • 获取Spark RDD的一系列列

    现在我的 RDD 中有 300 多列 但我发现需要动态选择一系列列并将它们放入 LabledPoints 数据类型中 作为 Spark 的新手 我想知道是否有任何索引方式来选择 RDD 中的一系列列 就像是temp data data 10
  • 在 grails 中,如何获取所有当前会话的引用?

    我想列出 grails 管理控制器中的所有当前会话 获得参考的最简单方法是什么来自控制器的会话集合 这是一项功能 默认情况下禁用 但可以通过设置轻松启用grails plugins appinfo useContextListener tr
  • 简单的 goroutine 无法在 Windows 上运行

    我正在对 goroutine 进行一些测试 只是为了了解它们是如何工作的 但它们似乎根本没有运行 我做了一个非常简单的测试 package main import fmt func test fmt Println test func ma
  • 如何使用 firebase 并将读取和写入规则设置为 false

    我正在开发一个项目 并且遵循了一些教程来学习和构建该应用程序 但他们都将 Firebase 读写规则更改为 true 这是不安全的 例如他们改变了 rules read false write false to rules read tru
  • 如何使用PIL裁剪图像?

    我想通过从给定图像中删除前 30 行和后 30 行来裁剪图像 我已经搜索过但没有得到确切的解决方案 有人有一些建议吗 有一个crop method w h yourImage size yourImage crop 0 30 w h 30
  • 如何在Java中从客户端获取uuid或mac地址?

    我正在寻找一种基于 Java 的 Web 应用程序的解决方案来唯一标识客户端 服务器与客户端位于同一网络中 我认为使用 MAC 地址将是一个很好的解决方案 问题是我无法使用 cookie 因为它们可以在客户端删除 而且我无法使用 IP 因为
  • 如何针对不同屏幕动态设置textview的文本大小[重复]

    这个问题在这里已经有答案了 我正在创建一个文本视图并动态添加到布局中 我在用textView setTextSize 18 设置文本大小的方法 我在三星平板电脑上测试了它 发现字体大小对于这个屏幕来说太小 然后我将文本大小更改为25 但对于
  • 保存 ML 模型以供将来使用

    我正在将一些机器学习算法 如线性回归 逻辑回归和朴素贝叶斯 应用于一些数据 但我试图避免使用 RDD 并开始使用 DataFrame 因为RDD 速度较慢比 pyspark 下的数据帧 见图 1 我使用 DataFrames 的另一个原因是
  • [NSMutableArray objectAtIndex:]:索引 0 超出 AVURLAsset 中空数组的范围

    我尝试使用以下代码来合并音频 AVMutableComposition composition AVMutableComposition composition AVURLAsset videoAsset AVURLAsset alloc
  • spring data JPA如何决定调用entityManager.persist(…)或entityManager.merge(…)方法

    当entityManager persist 方法被调用时以及当entityManager merge 在spring data jpa中被调用时 根据文档 如果实体尚未持久化 Spring Data JPA将通过调用entityManag
  • 实体框架(首先是数据库)存储过程的返回结果不正确[重复]

    这个问题在这里已经有答案了 环境 视觉工作室 2017 SQL Server 2016 采用数据库优先方法的 EF v6 背景 存储过程位于EDMX中 如果没有发生任何事情 我的存储过程将返回值设置为 0 如果有任何影响 则将返回值设置为
  • 当使用“L'Ecuyer-CMRG”RNG 时,R 不会重置种子?

    我在 R 中做了一些并行模拟 我注意到种子 使用 L Ecuyer CMRG rng 时不会更改 我正在读书 Parallel R 一书 选项 mc set seed TRUE 应该给出 每次调用 mclapply 时 每个工作人员都会获得