Я тестирую pybrain в соответствии с базовым учебным пособием здесь, а другой - с более реалистичными данными здесь. Однако я получаю эту ошибку при применении trndata._convertToOneOfMany() с ошибкой:
AttributeError: 'SupervisedDataSet' object has no attribute '_convertToOneOfMany
Набор данных создается как классификация. Объект classificationDataSet, но вызов splitWithProportion, по-видимому, изменяет его надзор. Объект SupervisedDataSet, поэтому, будучи довольно новым для Python, эта ошибка не кажется таким сюрпризом, как контролируемое. SupervisedDataSet не имеет это способ, классификация .ClassificationDataSet делает. Код здесь.
Однако тот же самый точный код используется во многих учебных пособиях, и я чувствую, что мне не хватает чего-то, поскольку у многих других он работает. Я посмотрел на изменения в кодовой базе github и ничего вокруг этой функции, я также пытался работать под Python 3 против 2.7, но без разницы. Если у кого-то есть какие-то указатели, чтобы вернуть меня на правильный путь, и это было бы очень оценено.
#flatten the 64x64 data in to one dimensional 4096
ds = ClassificationDataSet(4096, 1 , nb_classes=40)
for k in xrange(len(X)): #length of X is 400
ds.addSample(np.ravel(X[k]),y[k])
# a new sample consisting of input and target
print(type(ds))
tstdata, trndata = ds.splitWithProportion( 0.25 )
print(type(trndata))
trndata._convertToOneOfMany()
tstdata._convertToOneOfMany()