肾盂功能差

2024-10-02 18:18:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道我是做错了什么,还是结果真的那么差。假设最简单的NN示例如文档所示:

>>>net = buildNetwork(2, 3, 1, bias=True)
>>> ds = Superviseddataset(2, 1)
>>> ds.addSample((0, 0), (0,))
>>> ds.addSample((0, 1), (1,))
>>> ds.addSample((1, 0), (1,))
>>> ds.addSample((1, 1), (0,))
>>> trainer = BackpropTrainer(net, ds)
>>> trainer.trainUntilConvergence()
>>> print net.activate((0,0))
>>> print net.activate((0, 1))
>>> print net.activate((1, 0))
>>> print net.activate((1, 1))

例如

>>> print net.activate((1,0))
[ 0.37855891]
>>> print net.activate((1,1))
[ 0.6592548]

应为0。我知道我可以很明显地绕圈,但我仍然希望网络对于这样一个简单的例子会更加精确。这里可以称之为“工作”,但我怀疑我遗漏了一些重要的东西,因为这是非常不可用的。。。

问题是,如果您将verbose=True设置为培训师,您可以看到非常小的错误(例如总错误:0.0532936260399)

我假设网络的错误率是5%,那么之后在激活功能中怎么会关闭这么多呢?

显然,我用pybrain来做更复杂的事情,但我也有同样的问题。我的测试样本中大约有50%是错误的,尽管网络上说错误大概是0.09左右。

有什么帮助吗?


Tags: 文档网络truenet错误dsnnactivate