PyBrain AssertionError при настройке данных для тренера

Я пытаюсь настроить нейронную сеть в Python (используя PyBrain) для целей прогнозирования. Я уже установил один с небольшим фиктивным набором данных, но при расширении этой сети для работы с большими наборами данных я столкнулся с проблемой, касающейся ошибки AssertionError. Вот мой код:

ds = ClassificationDataSet(231, 1)

for x in range(inputData[0].size):
     ds.addSample(inputData[:,x], inputAnswers[x])

network = buildNetwork(191, 128, 1, bias=True, hiddenclass=TanhLayer)
network.randomize()
trainer = BackpropTrainer(network)
trainer.setData(ds)

и вот сообщение об ошибке, которое я получаю:

File "ANN_rawData.py", line 45, in <module>
trainer.setData(ds)
File "[path]", line 22, in setData
assert dataset.indim == self.module.indim
AssertionError

Что означает эта ошибка, и как я могу это исправить? Заранее спасибо!

2 ответа

Решение

Оператор assert проверяет, является ли условие истинным. В этом случае, если внутренний размер (indim) вашей network такой же, как ваш набор данных, ds, Поскольку это не так, возникает ошибка:

>>> ds = ClassificationDataSet(231, 1)
>>> network = buildNetwork(191, 128, 1, bias=True)
>>> assert ds.indim == network.indim   # 231 != 191, error!
AssertionError

Починить это:

Убедитесь, что ваш network а также ds имеют такие же внутренние размеры, как, например:

>>> ds = ClassificationDataSet(191, 1)
>>> network = buildNetwork(191, 128, 1, bias=True)
>>> assert ds.indim == network.indim # 191 == 191, okay!

Оператор assert проверяет условие и возвращает логическое значение. Ошибка AssertionError сообщает вам, что результат assert dataset.indim == self.module.indim был ложным, что приводит к ошибке в коде и возвращает ошибку Assertion. Если это ожидаемое условие для кода, который вы вводите, перехватите исключение и продолжайте.

Другие вопросы по тегам