2016-02-01 2 views
2

При попытке настроить DataIterator, как описано в разделе neon tutorial.Библиотека Deep-learning Neon DataIterator/Ошибка инициализации ArrayIterator

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, у того же.

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' 

Почему это так? Есть ли легкое решение?

ответ

1

Исправлена ​​ошибка сгенерирована backend.

from neon.backends import gen_backend 

be = gen_backend() 
(...) 
+0

Что вы делаете с "be"? если вы вызываете gen_backend(), это neon, а затем устанавливаете глобальное значение и передаете ли вы 'be' чем-то вроде' ArrayIterator'? –

+0

Neon задает глобальную переменную «be». Neon использует это для выполнения каждого вычисления и распределения памяти. Уровень абстракции оборудования, который позволяет легко переключаться между, например, cpu и gpu. –

Смежные вопросы