【发布时间】:2015-02-11 11:38:21
【问题描述】:
我是 Pybrain 的新手,正在尝试构建一个神经网络。首先,我遇到了the error described here:
AttributeError: 'SupervisedDataSet' object has no attribute '_convertToOneOfMany'
我尝试了该线程接受的答案中描述的解决方法。虽然它似乎有效,但它现在给了我一个新错误。这些是我的代码的相关块:
将文件读入分类数据集的部分。 3个输入属性,2个类,拆分读取数组,前3列为'input',最后一列为'target':
ds = ClassificationDataSet(inp=3, target=1, nb_classes=2)
tf = open('datafile.txt')
a = np.loadtxt(tf)
a = np.hsplit(a, (3,4))
ds.setField('input', a[0])
ds.setField('target', a[1])
构建简单网络的部分,非常标准的pybrain:
inLayer = SigmoidLayer(3)
hiddenLayer = SigmoidLayer(5)
outLayer = SigmoidLayer(2)
fnn.addInputModule(inLayer)
fnn.addModule(hiddenLayer)
fnn.addOutputModule(outLayer)
in_to_hidden = FullConnection(inLayer, hiddenLayer)
hidden_to_out = FullConnection(hiddenLayer, outLayer)
fnn.addConnection(in_to_hidden)
fnn.addConnection(hidden_to_out)
fnn.sortModules()
这是解决方法,如上所述:
tstdata_temp, trndata_temp = ds.splitWithProportion(0.25)
tstdata = ClassificationDataSet(3, target=1, nb_classes=2)
for n in xrange(0, tstdata_temp.getLength()):
tstdata.addSample( tstdata_temp.getSample(n)[0], tstdata_temp.getSample(n)[1] )
trndata = ClassificationDataSet(3, target=1, nb_classes=2)
for n in xrange(0, trndata_temp.getLength()):
trndata.addSample( trndata_temp.getSample(n)[0], trndata_temp.getSample(n)[1] )
trndata._convertToOneOfMany()
tstdata._convertToOneOfMany()
这是我在第一行转换时遇到的错误:
IndexError: index 2 is out of bounds for axis 1 with size 2
【问题讨论】:
标签: python machine-learning pybrain