如何解决AttributeError: 'Dataset' 对象没有属性 'value'
我在使用包读取 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'
解决方法
是的,.value
已被弃用一段时间。正如我在上面的评论中提到的,如果没有令人信服的理由,我不会降级到 h5py 2.9.0。它于 2014 年发布。当前的 h5py 版本是 3.2,支持最新的 HDF5 格式,并有许多增强和错误更正。
使用 h5py 访问 HDF5 数据有两种主要方式。简而言之,您可以:
- 返回一个 h5py 数据集对象。数据集对象的行为“如同”它是一个数组,但在需要之前不会将数据加载到内存中。
- 返回一个 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
,dataset.value 属性已弃用。要么使用:
dataset[()]
或降级 h5py
以使用旧语法:
pip3 install --upgrade pip && pip3 install h5py=='2.9.0'
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。