管理HDF5对象参考

时间:2017-01-10 21:13:24

标签: python hdf5

我正在尝试使用以下代码为Python中的街景房号(SVHN)数据集http://ufldl.stanford.edu/housenumbers/加载mat文件

import h5py
labels_file = './sv/train/digitStruct.mat'
f = h5py.File(labels_file)
struct= f.values()
names = struct[1].values()
print(names[1][1].value)

我得到[<HDF5 object reference>]但我需要知道实际的字符串

1 个答案:

答案 0 :(得分:1)

要了解您可以执行的数据布局

h5dump ./sv/train/digitStruct.mat

但也有其他方法,例如visitvisititems

一个很好的参考可以帮助你,而且似乎已经解决了一个非常类似的问题(如果不是相同的话)最近是以下SO帖子:
h5py, access data in Datasets in SVHN
例如代码段:

import h5py
import numpy

def get_name(index, hdf5_data):
    name = hdf5_data['/digitStruct/name']
    print ''.join([chr(v[0]) for v in hdf5_data[name[index][0]].value])

labels_file = 'train/digitStruct.mat'
f = h5py.File(labels_file)
for j in range(33402):
    get_name(j, f)

将打印文件的名称。我得到了例子:

  

7459.png
  7460.png
  7461.png
  7462.png
  7463.png
  7464.png
  7465.png

你可以从这里概括。