将图像文件夹转换为.h5文件?

时间:2018-03-16 06:12:32

标签: python numpy h5py

目前我正在学习Andrew NG的课程。他们在那里打开.h5文件中的图像数据集。我想对我自己的数据集尝试相同的方法:我想将图像文件夹转换为.h5文件。

我尝试了以下操作,但是当我打开train_x.h5时,它会将所有条目显示为零。

h5_train = h5py.File("train_x.h5", 'w')
h5_train.create_dataset("data_train", data=np.array(train_x))
print(h5_train)
h5_train.close()

此处train_xshape(270000,500)的数组,其中第一个条目是pixels(300*300*3)的数字,第二个条目是文件夹中的图像数。

1 个答案:

答案 0 :(得分:3)

我认为:

  • train_x不包含您的期望。
  • 您正在错误地查看文件。

您的语法似乎完全正确。运行此示例时,一切都按预期工作:

import numpy as np
import h5py

array = np.arange(25).reshape(5,5)

archive = h5py.File('test.h5', 'w')

archive.create_dataset('/array', data=array)

archive.close()

我们可以通过

验证它是否正确
import h5py

archive = h5py.File('test.h5','r')

for key in archive:
  print(key)
  print(archive[key][...])

这给出了我们的内容:

array
[[ 0  1  2  3  4]
 [ 5  6  7  8  9]
 [10 11 12 13 14]
 [15 16 17 18 19]
 [20 21 22 23 24]]

请注意,您也可以使用图形HDFview或命令行工具h5dump来检查您的文件。

最后,最好注意写作的第二种语法:

import numpy as np
import h5py

array = np.arange(25).reshape(5,5)

archive = h5py.File('test.h5', 'w')

archive['array'] = array

archive.close()