2016-06-17 6 views
-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,0, ..., 1,1, 1] "? Вы имеете в виду, что у вас одномерные метки, поэтому каждый элемент в вашем массиве является меткой? – Andnp

+0

Ярлыки - это одномерный список, но я использую «trndata._convertToOneOfMany()», который преобразует мои метки в двумерный список, который выглядит следующим образом: [(1,0), (1,0) ...... (0,1), (0,1)]. Таким образом, в конечном счете мои цели являются двумерными. – jack

ответ

0

Извините, после добавления срока смещения точность была довольно хорошо.

FNN = buildNetwork (trndata.indim, 10, trndata.outdim, смещение = True, фору = SoftmaxLayer)

Смежные вопросы