-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)
Epoch 수와 숨겨진 뉴런 수를 늘려보고했습니다. 정확도는 개선되지 않았습니다. '데이터'는 400 차원 (20x20 이미지의 픽셀 값)이며 라벨은 다음과 같습니다. [0,0,0, .... 1,1,1]Pybrain - 신경망 정확도가 매우 낮습니다.
는 "레이블은 다음과 같이 (trndata.indim, 10, trndata.outdim는, 바이어스 = 사실은, = SoftmaxLayer 급에 속하다) : [0, 0, 0, ..., 1,1, 1]" ? 배열의 각 요소가 레이블이기 때문에 단일 차원 레이블을 가지고 있다는 것을 의미합니까? – Andnp
레이블은 단일 차원 목록이지만 내 레이블을 다음과 같이 2 차원 목록으로 변환하는 "trndata._convertToOneOfMany()"를 사용합니다 : [(1,0), (1,0) ......] (0,1), (0, 1)]이다. 궁극적으로 목표는 2 차원입니다. – jack