y1 = []
y2 = []
x = []
for i in range(40):
#fer dos llistes (error y epoch) y despres fer un plot
trainer.trainEpochs( 1 )
trnresult = percentError( trainer.testOnClassData(),trndata['class'] )
tstresult = percentError( trainer.testOnClassData(dataset=tstdata ),tstdata['class'] )
print "epoch: %4d" % trainer.totalepochs, \
" train error: %5.2f%%" % trnresult, \
" test error: %5.2f%%" % tstresult
if i==1:
g=Gnuplot.Gnuplot()
else:
y1 = y1.append(float(trnresult))
y2 = y2.append(float(tstresult))
x = x.append(i)
d1=Gnuplot.Data(x,y1,with_="line")
d2=Gnuplot.Data(x,y2,with_="line")
g.plot(d1,d2)
Hi everyone, first time i post here, but thanks for the work.
Ok, i´m working with neural networks (multi-layer preceptron) and i´m testing with UCI ML repository, i have to make a graphical display of the error versus the number of epochs, but i have no idea what i´m doing wrong, this is the error i got:
y1 = y1.append(float(trnresult))
AttributeError: 'NoneType' object has no attribute 'append'
I´ve tryed with int and float at the y1.append() but i got same errors. This is all i get on console:
Number of training patterns: 233
Input and output dimensions: 6 2
First sample (input, target, class):
[ 63.03 22.55 39.61 40.48 98.67 -0.25] [1 0] [ 0.]
Total error: 0.110573541007
epoch: 1 train error: 33.05% test error: 29.87%
Total error: 0.0953749484982
epoch: 2 train error: 32.19% test error: 35.06%
Total error: 0.0977600868845
epoch: 3 train error: 27.90% test error: 29.87%
Traceback (most recent call last):
File "C:\Python\Practice\dataset.py", line 79, in <module>
y1 = y1.append(float(trnresult))
AttributeError: 'NoneType' object has no attribute 'append'
Thanks.
The append()
function on a list does not return a value. Therefore y1
is replaced by None
. You should do y1.append()
and y2.append()
without assigning back to y1
and y2
.
More specifically
>>> a = []
>>> b = a.append(1)
>>> b is None
True
>>> a
[1]
>>> a.append(2)
>>> a
[1, 2]
If you want, you can use the +
operator on lists (note the []
around 3
):
>>> a = a + [3]
>>> a
[1, 2, 3]