【问题标题】:Deep-learning library Neon DataIterator / ArrayIterator init error深度学习库 Neon DataIterator / ArrayIterator 初始化错误
【发布时间】:2016-05-09 09:12:14
【问题描述】:

尝试按照neon tutorial 中的说明设置 DataIterator 时。

from neon.data import DataIterator
import numpy as np

X = np.random.rand(10000, 3072)
y = np.random.randint(1, 11, 10000)

train = DataIterator(X=X, y=y, nclass=10, lshape=(3, 32, 32))

我遇到了一个奇怪的错误:

ERROR:neon.data.dataiterator:DataIterator class has been deprecated and  renamed"ArrayIterator" please use that name.
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "neon/data/dataiterator.py", line 168, in __init__
    super(DataIterator, self).__init__(*args, **kwargs)
  File "neon/data/dataiterator.py", line 82, in __init__
    self.Xdev = [self.be.array(x) for x in X]
AttributeError: 'NoneType' object has no attribute 'array'

然后我尝试使用 ArrayIterator,保持 X,y 相同。

ArrayIterator(X=X, y=y, nclass=10, lshape=(3,32,32))

同样的 NoneType 错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "neon/data/dataiterator.py", line 82, in __init__
    self.Xdev = [self.be.array(x) for x in X]
AttributeError: 'NoneType' object has no attribute 'array'

为什么会这样?有简单的解决方法吗?

【问题讨论】:

    标签: python machine-learning deep-learning dataset


    【解决方案1】:

    通过生成backend解决了这个问题。

    from neon.backends import gen_backend
    
    be = gen_backend()
    (...)
    

    【讨论】:

    • 你对“be”做了什么?如果您调用 gen_backend() 是霓虹灯,那么设置一个全局并且您是否将 be 传递给 ArrayIterator
    • Neon 将全局变量设置为“be”。 Neon 使用它来执行内存的每次计算和分配。硬件抽象层,可以轻松切换例如cpu 和 gpu 后端。
    猜你喜欢
    • 2017-11-26
    • 2018-11-05
    • 2020-10-27
    • 2019-01-10
    • 2020-06-30
    • 1970-01-01
    • 2022-01-17
    • 2015-03-14
    • 2019-10-20
    相关资源
    最近更新 更多