我正在尝试使用以下代码为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>]
但我需要知道实际的字符串
答案 0 :(得分:1)
要了解您可以执行的数据布局
h5dump ./sv/train/digitStruct.mat
但也有其他方法,例如visit
或visititems
。
一个很好的参考可以帮助你,而且似乎已经解决了一个非常类似的问题(如果不是相同的话)最近是以下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
你可以从这里概括。