编程语言
首页 > 编程语言> > python – pybrain什么是总错误,它告诉我们什么

python – pybrain什么是总错误,它告诉我们什么

作者:互联网

所以我对python和pybrain很新,但是我在网上发现了一个代码,并在其上运行我自己的数据.当我看到python shell时,我看到的是

Total error: 0.119794950183
Total error: 0.120078064472
Total error: 0.119334171755
Total error: 0.119215954708
Total error: 0.119876371059
Total error: 0.119621091587
Total error: 0.119983293587
Total error: 0.119849213731
Total error: 0.119638354788
Total error: 0.119574076444
Total error: 0.119634911454
Total error: 0.119601510912
Total error: 0.119665039573
Total error: 0.11944303853
Total error: 0.11950617361
Total error: 0.120088611572
Total error: 0.119774446939
Total error: 0.120016814426
Total error: 0.119605678505
Total error: 0.119998864263
Total error: 0.120071472045
Total error: 0.11973079242
Total error: 0.119790825048
Total error: 0.119558913137
Total error: 0.12024443015
Total error: 0.119525196587
Total error: 0.12008456943
Total error: 0.119641361568
Total error: 0.119745707444
Total error: 0.120065315199

1)总误差是什么意思,它在做什么

这是代码

from pybrain.datasets import SupervisedDataSet
from pybrain.tools.shortcuts import buildNetwork
from pybrain.supervised.trainers import BackpropTrainer

from pybrain.datasets            import ClassificationDataSet
from pybrain.utilities           import percentError
from pybrain.tools.shortcuts     import buildNetwork
from pybrain.supervised.trainers import BackpropTrainer
from pybrain.structure.modules   import SoftmaxLayer

from pylab import ion, ioff, figure, draw, contourf, clf, show, hold, plot
from scipy import diag, arange, meshgrid, where
from numpy.random import multivariate_normal

ds = SupervisedDataSet(2,1)

tf = open('weather.csv','r')

for line in tf.readlines():
    try:
        data = [float(x) for x in line.strip().split(',') if x != '']
        indata =  tuple(data[:2])
        outdata = tuple(data[2:])
        ds.addSample(indata,outdata)
    except ValueError,e:
            print "error",e,"on line"

n = buildNetwork(ds.indim,8,8,ds.outdim,recurrent=True)
t = BackpropTrainer(n,learningrate=0.01,momentum=0.5,verbose=True)
t.trainOnDataset(ds,5000)
t.testOnData(verbose=True)

解决方法:

要回答你关于“它告诉我们什么”的问题:查看总错误可以让你得到一个合理的猜测,如果你的网络训练时间更长,你的网络能否做得更好.如果总错误从一次迭代到下一次迭代发生了很大变化,那么这将表明它还没有稳定到最终状态.可能值得看看这个链接:

http://pybrain.org/docs/api/supervised/trainers.html

在那里你会看到trainEpochs和trainUntilConvergence的参考.您所看到的全部错误表明(虽然没有证明)您的网络已经融合到最终状态,并且通过额外的培训不会有太大改善.

总而言之,如果你看到的totalError在停止训练时看起来非常稳定,在你的情况下,你可能不必担心它.只需查看测试输出并确定您的网络是否正在完成适合您的工作.

标签:python,pybrain
来源: https://codeday.me/bug/20190628/1320230.html