2017-03-16 444 views
0

我可以在Python中加載H5文件,如下所示。如何將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'] 

如何打印這些鍵和值的文本文件?

+0

你的h5文件究竟是什麼?如果你以某種方式發佈它,這將是完美的。 –

+0

@АндрейЧереваткин謝謝我已更新編輯。 – batuman

+0

請複製粘貼'h5ls brainwash_800000.h5'的輸出。它將提供更多信息。 –

回答

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維數據偏移量開始每行。

+0

謝謝我已更新編輯。我沒有數據集,所以我有錯誤。我在h5文件中檢查了我的密鑰,以及如何在裏面打印這些密鑰和數據。 – batuman