【问题标题】:Python pickle can not save 3g size dictionary containing text and numpy arraysPython pickle 无法保存包含文本和 numpy 数组的 3g 大小字典
【发布时间】:2019-08-07 06:01:28
【问题描述】:

我有一个不断增加的字典,其中包含 numpy arrar 和文本。当它变大时,即内存中的3g,我无法用泡菜保存它。它正在使用大量内存。通常它在顶部的8g 程序附近,当它保存它时增加到15 g.. 我的记忆是16g。并且保存不成功。

如何保存这么大的字典?有什么想法吗?

with open(file_name_pck, 'wb') as handle:
    pickle.dump(enrol_full_dict, handle)

【问题讨论】:

  • 是numpy数组的问题,还是文本的问题?
  • 顺便说一句,您正在处理什么样的数据/问题?根据用例,使用标准化格式可能更有意义。例如:如果您的数据是图像数据字典,您可以编写一些包装器来读取/写入数据到磁盘上的 png 文件,其中文件名与 dict 键相关联。或者一些带有 blob 的数据库(sqlite 很适合这个问题)。它增加了一些开销,但数据可能会以更优化空间的方式存储,它会更便携,并且您不会冒如果您的大 blob 损坏,您的所有数据都将丢失的风险。跨度>
  • 数据为 .文本和 1024 x float32

标签: python numpy dictionary pickle


【解决方案1】:

你可以试试这个:

import pickle
dict = { ' ': ,' ': }
filename = ' '
outfile = open(filename,'wb')
pickle.dump(dict,outfile)
outfile.close()

【讨论】:

    【解决方案2】:

    你可以试试这个:

    import cPickle as pickle
    cPickle.dump(obj, file, protocol=2)
    

    【讨论】:

      猜你喜欢
      • 2019-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-03
      相关资源
      最近更新 更多