首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >您如何将global_rng状态写入文件,以便我可以加载它以供以后使用?

您如何将global_rng状态写入文件,以便我可以加载它以供以后使用?
EN

Stack Overflow用户
提问于 2019-11-01 15:36:38
回答 2查看 50关注 0票数 2

我有一个代码需要很长时间才能运行,比集群上允许的最大walltime更长。它依赖于rand(),所以为了在集群上以多个序列运行代码,我使用

代码语言:javascript
运行
AI代码解释
复制
julia> r = copy(Random.GLOBAL_RNG)

捕获全局随机数生成器在运行结束时的状态。我需要将'r‘保存到一个文件中,然后在集群上启动下一次运行时从该文件中读取该变量--本质上是为了能够“从我停止的地方继续”。当我尝试时(使用包DelimitedFiles):

代码语言:javascript
运行
AI代码解释
复制
julia> writedlm("rngState.bin",r)

但是,我得到以下错误

代码语言:javascript
运行
AI代码解释
复制
ERROR: MethodError: no method matching iterate(::MersenneTwister)
Closest candidates are:
  iterate(::Core.SimpleVector) at essentials.jl:568
  iterate(::Core.SimpleVector, ::Any) at essentials.jl:568
  iterate(::ExponentialBackOff) at error.jl:199

这让我相信Mersenne Twister rng的状态不是可以写入文件的东西。这是正确的吗?有没有人知道如何将GLOBAL_RNG的状态保存到文件中,这样我就可以在以后读回它,从我停止的地方继续?

EN

回答 2

Stack Overflow用户

发布于 2019-11-01 16:12:57

一种方法是使用内置标准库Serialization的功能

代码语言:javascript
运行
AI代码解释
复制
julia> using Random, Serialization

julia> rng = MersenneTwister(); # create random generator

julia> rand(rng, 3)
3-element Array{Float64,1}:
 0.3708879403326799
 0.46672369641612566
 0.5728925387391

julia> open("out.bin", "w") do f
           serialize(f, rng) # serialize rng to file
       end

julia> rng_loaded = deserialize("out.bin"); # load & deserialize rng from file

julia> rand(rng, 3)
3-element Array{Float64,1}:
 0.6210629081706212
 0.8568331464134413
 0.7247872543135467

julia> rand(rng_loaded, 3) # same numbers
3-element Array{Float64,1}:
 0.6210629081706212
 0.8568331464134413
 0.7247872543135467

您可以使用相同的技术将Random.GLOBAL_RNG存储到文件中。设置它并不像Random.GLOBAL_RNG = rng_loaded那么简单,因为您试图在另一个模块中分配一个变量(这是不允许的)。但是,您可以使用copy!(Random.GLOBAL_RNG, rng_loaded)就地覆盖它。

请注意,原则上,序列化格式可以在将来的Julia版本中更改。在这种情况下,您将无法再读取旧的rng文件。如果您计划存储更长时间的rngs,可以考虑将它们的各个字段存储在HDF5文件中。(你可以找到一些灵感here。)

更新:将我愚蠢的set_global_rng函数替换为copy!,正如@Matt B在他的回答中所指出的那样。

票数 1
EN

Stack Overflow用户

发布于 2019-11-01 16:13:59

您正在尝试将RNG编写到一个带分隔符的文件中,但是它的内部结构比简单的CSV所支持的要复杂得多。相反,我会使用序列化模块:

代码语言:javascript
运行
AI代码解释
复制
julia> using Random, Serialization

julia> open("rng.jls", "w") do f
           serialize(f, Random.GLOBAL_RNG)
       end

julia> rand(1, 5)
1×5 Array{Float64,2}:
 0.747507  0.279039  0.839956  0.265125  0.194283

julia> open("rng.jls") do f
           mt = deserialize(f)
           copy!(Random.GLOBAL_RNG, mt)
       end

julia> rand(1, 5)
1×5 Array{Float64,2}:
 0.747507  0.279039  0.839956  0.265125  0.194283
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58661944

复制
相关文章
Mysql.5.5 从启动到接收command
- servers_init() 初始化 servers 缓存,从servers表中读取,放入到缓存中
马说
2021/07/21
5020
Mysql.5.5 从启动到接收command
从被动到主动,换个角度看DB
近期做了次分享,主题是从被动到主动,换个角度看DB。之所以讲这个题目,是我个人经历多年对数据库的管理,也是经历了这个过程。随着自己对数据库的理解逐步深入,看待数据库的角度也逐步发生变化。走过了从被动式管理,到主动式预防的过程。希望这次的内容,能开阔大家对数据库的思考角度。
用户5548425
2020/09/10
5060
从被动到主动,换个角度看DB
Android从启动到程序运行发生的事情
转载请注明出处  博客地址:http://blog.csdn.net/JonsTank2013/article/details/51118563 作者:李中权
bear_fish
2018/09/19
1.1K0
Android从启动到程序运行发生的事情
js滚动到页面顶部
js平滑滚动到顶部,底部,指定地方 采用锚点进行页面中的跳转的确很方便,但是要想增加网页的效果,可以使用jquery中的animate,实现滚动的一个动作,慢慢的滚动到你想跳转到的位置 滚动到顶部:
IT工作者
2022/01/15
13.5K0
Android Service启动到Activity
从Service启动到Activity基本可以分为两类: 1.从自己应用的Service启动自己应用的Activity,即显式意图; 2.从自己应用的Service启动到其他应用的Activity,或者从别的应用的Service启动到自己应用的Activity,即隐式意图;
程序员飞飞
2020/02/27
3.4K0
js滚动到页面顶部
我们可以使用原生的JavaScript window.scrollTo 传入0,0 将会立即滚动到页面左上角。
用户1349575
2021/12/28
14.5K0
office2010软件下载安装教程--office全版本软件安装包office软件哪个版本好用
在Microsoft Office中,可以使用Outlook应用程序进行邮件管理。
用户7442032
2023/03/14
3.9K0
office2010(Excel/word/PPT)软件--office办公全版本软件下载
在Microsoft Office中,可以使用Outlook应用程序进行联系人管理。
用户7442032
2023/03/14
2.2K0
从自动到无忧 - 探索工业控制中手/自动切换的问题
工业控制中的变频器是现代生产过程中至关重要的组成部分。它们可以通过调整电动机的转速和频率,实现对生产过程的精准控制,从而提高生产效率、降低能源消耗并保护设备。
剑指工控
2023/08/31
3050
从自动到无忧 - 探索工业控制中手/自动切换的问题
Linux操作系统从开机启动到完成详细解析
本文从Linux操作系统的引导加载程序(对个人电脑而言通常是LILO)开始,介绍Linux开机引导的步骤。
苦叶子
2021/10/09
1.1K0
从推动到拉动:研发效能提升的第一性原理
导语 | 随着企业业务的快速发展,产品迭代速度越来越成为企业发展制胜的关键因素。在业务迅速扩张之下,企业研发团队的规模也在不断壮大。如何有效管理研发团队,又该如何提升企业研发效能,让企业在市场竞争中立于不败之地成为了一堂“必修课”。今天,我们特邀了 Agilean 首席顾问、腾讯云 TVP 吴穹老师 ,他将为我们带来软件研发效能提升的经验分享。
腾讯云 CODING
2023/08/08
1740
从推动到拉动:研发效能提升的第一性原理
从推动到拉动:研发效能提升的第一性原理
导语 | 随着企业业务的快速发展,产品迭代速度越来越成为企业发展制胜的关键因素。在业务迅速扩张之下,企业研发团队的规模也在不断壮大。如何有效管理研发团队,又该如何提升企业研发效能,让企业在市场竞争中立于不败之地成为了一堂“必修课”。今天,我们特邀了 Agilean 首席顾问、腾讯云 TVP 吴穹老师 ,他将为我们带来软件研发效能提升的经验分享。
TVP官方团队
2023/07/16
4120
从推动到拉动:研发效能提升的第一性原理
WPF 获取进程启动到当前现在的时间
从应用程序线程创建现在的时间可以通过 Process 类的 StartTime 属性获取,也就是其实这个方法不局限 WPF 可用,任何 dotnet 应用都能此方法
林德熙
2022/08/12
1K0
被小米的智能识物感动到哭
小米手机的相机里,隐藏了一个“智能识物”的AI。你只需要拍摄一张照片,这个AI就能识别出来你拍的是什么。
量子位
2018/09/29
1.3K0
被小米的智能识物感动到哭
RecyclerView滚动到指定位置
1、mLayoutManager private void moveToPosition(int position) { if (position >= 0) { mLayoutManager.scrollToPositionWithOffset(3, 0); } } 2、LinearSmoothScroller mTopSmoothScroller = new TopSmoothScroller(getActivity()); priva
用户9854323
2022/06/25
1.8K0
指定节点滚动到屏幕中间的js
父节点的class是slimScrollDiv 子节点的class是fa-warning 执行这个js
Theone67
2019/11/21
3.5K0
微生物群-肠道-大脑轴:从运动到情绪
脑肠轴在维持体内平衡中起着重要作用。许多内在和外在信号影响因子通过脑肠轴调节肠道和中枢神经系统的功能。最近,微生物群落作为调节肠脑信号传导的重要作用已经显现,微生物-肠道-脑轴的概念已经提出。本文描述了微生物脑肠轴在调节肠道和中枢神经系统功能中的作用,以及如何影响肠易激综合征、情绪和情感障碍等疾病。本文还研究了支撑这些疾病的重叠生物学结构,特别强调了神经递质血清素,它在胃肠道和大脑中都起着关键作用。尽管动物研究已经显示出很大的前景,但在这些发现转化为患者群体的诊断和治疗益处之前,还需要更多研究成果。本文发表在Gastroenterology杂志。
用户1279583
2022/06/13
1.1K0
微生物群-肠道-大脑轴:从运动到情绪
请问如何解决chrome在手机模式下在鼠标移动到页面区域就消失?
当然,如果不看知乎,那么就看解决方案吧,问题会出现在Nvida和Intel的显卡上
用户2353021
2020/05/12
4910
滑动到底部无限加载的实现
我们常常会碰到数据条数很多,需要分页显示的情况。对于移动端页面,我们一般会用每次滚动到接近页面底部时,加载更多(下一页)数据的方式。本文就来介绍下滑动到底部无限加载的实现。
前端GoGoGo
2018/08/24
1.8K0
将直播视频质量控制从广播设施移动到家庭
直播已经成为迪士尼流媒体服务(DSS)视频技术的一个组成部分。DSS 有多个团队,其主要功能是保持尽可能高的视频质量,并且内容传输技术正在全天候运作。为了做到这一点,DSS 在旧金山和纽约建立和配备了传输操作中心(TOCs),提供了最先进的视频监控系统,允许 TOC 工作人员查看和执行数千个基于 IP 的流中的任何一个的质量控制。
用户1324186
2022/02/18
3590
将直播视频质量控制从广播设施移动到家庭

相似问题

在angularjs中!$pristine和$dirty有什么不同?

30

AngularJS嵌套指令$pristine和$dirty设置

10

$dirty、$pristine在AngularJS中是否仅用于表单?

21

AngularJS表单保留$dirty手动设置每个输入$pristine

18

$dirty && $pristine不能正常工作

14
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档