【问题标题】:How to print H5 file to a text file?如何将H5文件打印到文本文件?
【发布时间】:2017-08-07 07:00:27
【问题描述】:

我可以按如下方式在 Python 中加载 H5 文件。

import h5py

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

我想将f 中的所有内容打印到一个文本文件中。 我该怎么做?

编辑: 我可以将 Keys 打印为

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']

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

【问题讨论】:

  • 您的 h5 文件中到底有什么?如果您以某种方式将其发布在此处将是完美的。
  • @АндрейЧереваткин 谢谢我在 EDIT 中更新了。
  • 请改为复制粘贴h5ls brainwash_800000.h5 的输出。它将提供更多信息。

标签: python-2.7 hdf5


【解决方案1】:

如何转储 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 维中的数据偏移量开始。

【讨论】:

  • 谢谢我在 EDIT 中更新了。我没有数据集,所以我有错误。我检查了 h5 文件中的密钥以及如何在其中打印这些密钥和数据。
猜你喜欢
  • 2021-09-06
  • 2018-08-13
  • 2012-08-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-12
  • 2011-05-10
  • 2011-03-03
相关资源
最近更新 更多