在按照neon教程中所述设置DataIterator时,遇到了以下问题:
from neon.data import DataIteratorimport numpy as npX = 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类已被弃用并重命名为"ArrayIterator",请使用该名称。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'
为什么会这样?有什么简单的解决方法吗?
回答:
通过生成后端解决了这个问题。
from neon.backends import gen_backendbe = gen_backend()(...)