-3
i=0
noofclasses = 2
alldata = ClassificationDataSet(400, 1, noofclasses)
while i<len(data):
alldata.addSample(data[i],labels[i])
i=i+1
tstdata_temp, trndata_temp = alldata.splitWithProportion(10)
tstdata = ClassificationDataSet(400, 1, noofclasses)
for n in xrange(0, tstdata_temp.getLength()):
tstdata.addSample(tstdata_temp.getSample(n)[0], tstdata_temp.getSample(n)[1])
trndata = ClassificationDataSet(400, 1, noofclasses)
for n in xrange(0, trndata_temp.getLength()):
trndata.addSample(trndata_temp.getSample(n)[0], trndata_temp.getSample(n)[1])
trndata._convertToOneOfMany()
tstdata._convertToOneOfMany()
fnn = buildNetwork(trndata.indim, 10, trndata.outdim, outclass=SoftmaxLayer)
trainer = BackpropTrainer(fnn, dataset=trndata, momentum=0.1, verbose=True, weightdecay=0.01)
trainer.trainEpochs(20)
Я попытался увеличить количество Эпохов и количество скрытых нейронов. Не улучшайте точность. «данные» - 400 размер (пиксельные значения 20х20 изображений), а метки выглядят следующим образом: [0,0,0, .... 1,1,1]Pybrain - Нейронная сеть Точность очень низкая
«Этикетки выглядеть следующим образом: [0,0,0, ..., 1,1, 1] "? Вы имеете в виду, что у вас одномерные метки, поэтому каждый элемент в вашем массиве является меткой? – Andnp
Ярлыки - это одномерный список, но я использую «trndata._convertToOneOfMany()», который преобразует мои метки в двумерный список, который выглядит следующим образом: [(1,0), (1,0) ...... (0,1), (0,1)]. Таким образом, в конечном счете мои цели являются двумерными. – jack