1

我正在尝试为我的 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

我不知道如何纠正错误。

4

1 回答 1

4

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

于 2014-05-19T07:40:02.457 回答