属性错误:'数据集'对象没有属性'值' [英] AttributeError: 'Dataset' object has no attribute 'value'

查看:0
本文介绍了属性错误:'数据集'对象没有属性'值'的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在使用程序包读取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数据主要有两种方式。简而言之,您可以:

  1. 返回h5py DataSet对象。DataSet对象的行为就像它是一个数组,但在需要之前不会将数据加载到内存中。
  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

这篇关于属性错误:&#39;数据集&#39;对象没有属性&#39;值&#39;的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆