Pybrain实现抛出错误

时间:2012-04-26 21:24:09

标签: python machine-learning neural-network pybrain

我正在尝试为10维的数据集生成网格,同时这样做我遵循http://pybrain.org/docs/tutorial/fnn.html的代码。我正在实现并抛出错误的代码是:

 ticks = arange(-3.,6.,0.2)
 X, Y = meshgrid(ticks, ticks)
 # need column vectors in dataset, not arrays
 griddata = ClassificationDataSet(10,1, nb_classes=3)
 for i in xrange(X.size):
      griddata.addSample([X.ravel()[i],Y.ravel()[i]], [0])

我得到的错误是:

 File "a.py", line 224, in <module>
  griddata.addSample([X.ravel()[i], Y.ravel()[i]], [0])
 File "a.py", line 45, in addSample
  self.appendLinked(inp, target)
 File "a.py", line 216, in appendLinked
  self._appendUnlinked(l, args[i])
 File "a.py", line 198, in _appendUnlinked
  self.data[label][self.endmarker[label], :] = row
 ValueError: cannot copy sequence with size 2 to array axis with dimension 7

我没有得到如何纠正错误。

1 个答案:

答案 0 :(得分:4)

Python已经给出了答案:尺寸是你的问题。您创建一个包含10个维度的数据集: ClassificationDataSet(in_dim, out_dim, class_num) 因为第一个数字是维度。 然后,您尝试将具有2维的样本添加到该数据集: griddata.addSample([in1, in2, in3..., in_last], [out1])。 您在这里提供的示例完全来自pybrain教程,只是您错误地复制了一个数字in_dimensions。在这个例子中它是2。然后它应该工作。