加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

保存和加载python内存的功能?

发布时间:2020-12-20 13:39:26 所属栏目:Python 来源:网络整理
导读:我在 python中编写了一个程序,需要几个小时来计算.我现在希望程序不时保存所有内存(主要是numpy-arrays).这样我就可以从最后一次保存发生的那一刻开始重新计算.我不是在寻找像’numpy.save(file,arr)’这样的东西,而是一种一次性保存所有内存的方法…… 亲切
我在 python中编写了一个程序,需要几个小时来计算.我现在希望程序不时保存所有内存(主要是numpy-arrays).这样我就可以从最后一次保存发生的那一刻开始重新计算.我不是在寻找像’numpy.save(file,arr)’这样的东西,而是一种一次性保存所有内存的方法……

亲切的问候,
马蒂亚斯

解决方法

我同意@phyrox,可以使用dill将活动对象保存到磁盘,以便以后重新启动. dill可以使用dump()序列化numpy数组,并使用dump_session()整个解释器会话.

但是,听起来你真的在问某种形式的缓存…所以我不得不说@Alfe的评论可能更接近你想要的.如果你想要无缝缓存和存档数组到内存…那么你想要joblib或klepto.

klepto构建在dill之上,可以将函数输入和输出缓存到内存中(这样计算不需要运行两次),并且它可以将缓存中的对象无缝地保存到磁盘或数据库中.

github上的版本是你想要的. https://github.com/uqfoundation/klepto或https://github.com/joblib/joblib. Klepto更新,但拥有比joblib更广泛的缓存和归档解决方案. Joblib已经在生产中使用更长时间,因此它经过了更好的测试 – 特别是对于并行计算.

以下是典型的klepto工作流程示例:https://github.com/uqfoundation/klepto/blob/master/tests/test_workflow.py

这是另一个有一些numpy:
https://github.com/uqfoundation/klepto/blob/master/tests/test_cache.py

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读