我是Pybrain的新手,試圖組合一個神經網絡。首先,我碰到the error described here:Pybrain神經網絡:_convertToOneOfMany錯誤
AttributeError: 'SupervisedDataSet' object has no attribute '_convertToOneOfMany'
我試圖在該線程的接受的答案中描述的解決方法。雖然它看起來很有效,但它現在給我一個新的錯誤。這些是我的代碼的相關塊:
將文件讀入分類數據集的部分。 3輸入屬性,2類,拆分讀陣列,前3列「輸入」和最後一個「目標」:
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