【发布时间】:2016-10-19 06:49:48
【问题描述】:
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]
【问题讨论】:
-
"标签看起来像这样:[0,0,0,...,1,1,1]" ?你的意思是你有单维标签,所以你数组中的每个元素都是一个标签?
-
标签是一维列表,但我使用的是“trndata._convertToOneOfMany()”,它将我的标签转换为二维列表,如下所示:[(1,0),(1,0 )......(0,1),(0,1)]。所以最终我的目标是二维的。
标签: python neural-network pybrain