【发布时间】: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 格式,并具有许多增强功能和纠错功能。