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. Если это ожидаемое условие для кода, который вы вводите, перехватите исключение и продолжайте.