首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用h5py Killed将大型4Dnumpy数组压缩为HDF5 :9

使用h5py Killed将大型4Dnumpy数组压缩为HDF5 :9
EN

Stack Overflow用户
提问于 2016-03-29 03:56:58
回答 2查看 1.1K关注 0票数 2

我刚接触大型数据集,很难将我正在阅读的解释和教程推断为我的问题。

我想要将37019张图像(每个450x600x3)保存到一个numpy数组中,并将其压缩到一个文件中进行训练。是实例化一个37019x450x600x3的0数组并在以后修改它们,还是逐个追加450x600x3数组更好?

现在我正在使用h5py,但它的结果是Killed: 9

代码语言:javascript
运行
复制
import numpy as np
import h5py

imgarray = np.zeros((37019,450, 600, 3))

with h5py.File('deleteme.h5', 'a') as FOB:
    FOB.create_dataset("imgarray",data=imgarray,compression="gzip",compression_opts=9)

大约需要5分钟,然后:

代码语言:javascript
运行
复制
Killed: 9

当图像的数量较少时,例如3700而不是37019,这是可行的。3700会产生一个30MB的.h5文件。

这是否意味着我的数组对于h5dy中的一个数据集来说太大了?我是否需要将其保存在更小的块中,单独的数据集或其他东西?你有什么推荐的方法可以方便的访问和修改?

谢谢你的帮助!

EN

回答 2

Stack Overflow用户

发布于 2016-03-29 10:27:04

在您的其他问题中,您发现zip归档可能有大小限制;它也可能适用于gzip压缩。或者可能只是花了太长时间。

h5py文档指出,将dataset保存为h5py文件时会动态压缩(并动态解压缩)。我还看到一些关于它与chunking交互的内容。您可能需要浏览h5py github存储库或相关的邮件列表。

您是否尝试过其他压缩方法或参数?

如何将数据保存在多个数据集中,每个数据集中的大小都很容易压缩?

票数 0
EN

Stack Overflow用户

发布于 2016-03-30 12:33:23

可能有一种更好的方法可以做到这一点,但我最终只是将我的数据集分成了几个numpy数组,每个数组的大小为1000x450x600x3,gzip可以很好地完成这项工作。它花了25分钟,但都保存到一个400MB大小的.h5文件中。谢谢!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36270068

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档