Python 为培训师设置数据时出现PyBrain断言错误

Python 为培训师设置数据时出现PyBrain断言错误,python,neural-network,pybrain,Python,Neural Network,Pybrain,我正在尝试用Python(使用PyBrain)建立一个神经网络,用于预测目的。我已经用一个小的模拟数据集设置了一个,但是当扩展这个网络来处理更大的数据集时,我遇到了一个关于断言错误的问题。这是我的密码: ds = ClassificationDataSet(231, 1) for x in range(inputData[0].size): ds.addSample(inputData[:,x], inputAnswers[x]) network = buildNetwork(19

我正在尝试用Python(使用PyBrain)建立一个神经网络,用于预测目的。我已经用一个小的模拟数据集设置了一个,但是当扩展这个网络来处理更大的数据集时,我遇到了一个关于断言错误的问题。这是我的密码:

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
文件“ANN_rawData.py”,第45行,在
培训师设置数据(ds)
setData中第22行的文件“[path]”
assert dataset.indim==self.module.indim
断言错误

这个错误意味着什么?我如何修复它?提前谢谢你

assert语句检查一个条件并返回一个布尔值。AssertionError告诉您assert dataset.indim==self.module.indim的结果为false,导致代码出错,从而返回断言错误。如果这是所输入代码的预期条件,则捕获异常并继续。

断言语句检查条件是否为真。在这种情况下,如果
网络的内部维度(
indim
)与数据集相同,
ds
。因为它们不是,所以会引发错误:

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

确保您的
网络
ds
具有相同的内部尺寸,例如:

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

惰性“解决方案”:通过使用-O标志运行脚本。断言错误来自模块,而不是他自己的代码。更好的方法是:
network=buildNetwork(ds.indim,128,ds.outdim,bias=True)