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