【问题标题】:AttributeError: 'Dataset' object has no attribute 'value'AttributeError:“数据集”对象没有属性“值”
【发布时间】:2021-07-28 06:49:55
【问题描述】:

使用包读取 hdf5 文件时出现此错误:

dataset.value

错误:

Traceback (most recent call last):
  File "train.py", line 163, in <module>
    train(0, False, args.gpu_list, args.model_path)
  File "train.py", line 76, in train
    dataset = Ani1Dataset(dir_path='/data/ANI-1_release')
  File "/code/ani1dataset.py", line 16, in __init__
    self.parse(dir_path)
  File "/code/ani1dataset.py", line 32, in parse
    for molecule in adl:
  File "/code/pyanitools.py", line 75, in __iter__
    for data in self.h5py_dataset_iterator(self.store):
  File "/code/pyanitools.py", line 71, in h5py_dataset_iterator
    yield from self.h5py_dataset_iterator(item, path)
  File "/code/pyanitools.py", line 60, in h5py_dataset_iterator
    dataset = np.array(item[k].value)
AttributeError: 'Dataset' object has no attribute 'value'

【问题讨论】:

  • 在上面的代码中,如果item[k]引用了一个HDF5数据集,你可以使用dataset = item[k][:]将它读入一个NumPy数组。干净多了。此外,如果没有令人信服的理由,我不会降级到 h5py 2.9.0。它于 2014 年发布。当前的 h5py 版本为 3.2,支持较新的 HDF5 格式,并具有许多增强功能和纠错功能。

标签: hdf5 h5py


【解决方案1】:

dataset.value 属性已被弃用。要么使用:

dataset[()]

或降级 h5py 以使用旧语法:

pip3 install --upgrade pip && pip3 install h5py=='2.9.0'

【讨论】:

    【解决方案2】:

    是的,.value 已被弃用一段时间。正如我在上面的 cmets 中提到的,如果没有令人信服的理由,我不会降级到 h5py 2.9.0。它于 2014 年发布。当前的 h5py 版本为 3.2,支持最新的 HDF5 格式,并有许多增强和纠错。

    使用 h5py 访问 HDF5 数据有两种主要方法。简而言之,您可以:

    1. 返回一个 h5py 数据集对象。数据集对象的行为“就好像”它是一个数组,但在需要之前不会将数据加载到内存中。
    2. 返回一个 NumPy 数组。这会立即将数据加载到内存中。

    Complete h5py dataset documentation here:
    以下各示例:

    with h5py.File('filename.h5','r') as h5f:
        # return a h5py dataset object:
        my_ds_obj = h5f[ds_name]
        # return a h5py dataset object:
        my_ds_arr = h5f[ds_name][:]
    

    另外,如果你只想读取部分数据,h5py 支持大多数 NumPy 切片语法,包括花式索引的子集。 h5py fancy indexing doc

    【讨论】:

      猜你喜欢
      • 2020-06-03
      • 1970-01-01
      • 2020-12-11
      • 1970-01-01
      • 1970-01-01
      • 2019-03-23
      • 2020-11-20
      • 1970-01-01
      • 2018-11-23
      相关资源
      最近更新 更多