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)
大家好,我第一次在这里发帖,但感谢你的工作。
好的,我正在使用神经网络(多层先验)并且我正在使用UCI ML存储库进行测试,我必须对错误与时期数量进行图形显示,但我不知道是什么我做错了,这是我得到的错误:
y1 = y1.append(float(trnresult))
AttributeError: 'NoneType' object has no attribute 'append'
我在y1.append()尝试使用int和float但是我遇到了同样的错误。 这就是我在控制台上的所有内容:
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'
感谢。
答案 0 :(得分:1)
列表中的append()
函数不返回值。因此y1
被None
取代。您应该y1.append()
和y2.append()
而不返回y1
和y2
。
更具体地说
>>> a = []
>>> b = a.append(1)
>>> b is None
True
>>> a
[1]
>>> a.append(2)
>>> a
[1, 2]
如果需要,您可以在列表中使用+
运算符(请注意[]
周围的3
):
>>> a = a + [3]
>>> a
[1, 2, 3]