如何将H5文件打印到文本文件?

时间:2017-03-16 08:05:54

标签: python-2.7 hdf5

我可以在Python中加载H5文件,如下所示。

import h5py

filename = 'brainwash_800000.h5'
f = h5py.File(filename, 'r')

我想将f内的所有内容打印到文本文件中。 我怎么能这样做?

编辑: 我可以打印键作为

import numpy as np
import h5py
filename = 'brainwash_800000.h5'
f = h5py.File(filename, 'r')
print(f.keys())

输出

[u'conv1', u'conv2', u'forget_gate', u'inception_3a', u'inception_3b', u'inception_4a', u'inception_4b', u'inception_4c', u'inception_4d', u'inception_4e', u'inception_5a', u'inception_5b', u'input_gate', u'input_value', u'ip_bbox_unscaled0.p0', u'ip_bbox_unscaled0.p1', u'ip_bbox_unscaled1.p0', u'ip_bbox_unscaled1.p1', u'ip_bbox_unscaled2.p0', u'ip_bbox_unscaled2.p1', u'ip_bbox_unscaled3.p0', u'ip_bbox_unscaled3.p1', u'ip_bbox_unscaled4.p0', u'ip_bbox_unscaled4.p1', u'ip_conf0.p0', u'ip_conf0.p1', u'ip_conf1.p0', u'ip_conf1.p1', u'ip_conf2.p0', u'ip_conf2.p1', u'ip_conf3.p0', u'ip_conf3.p1', u'ip_conf4.p0', u'ip_conf4.p1', u'output_gate', u'post_fc7_conv.p0', u'post_fc7_conv.p1']

如何在文本文件中打印这些键和值?

1 个答案:

答案 0 :(得分:0)

如何转储HDF5文件取决于文件中的内容。

对于单个数据集,输出到稍后可以输入到NumPy的格式,将作为

完成
import numpy as np
import h5py
filename = 'brainwash_800000.h5'
f = h5py.File(filename, 'r')
np.savetxt('datafile.txt', f['dataset'][...])
f.close()

您也可以将h5dump用于此目的,但它会生成逗号分隔值。

h5dump -d dataset -o brainwash_800000.txt -y brainwash_800000.h5

而且你也失去了数据的维度。您可以保留该信息,代价是每行都以N维中的数据偏移开始。