回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我用pybrain训练了一个神经网络。但是,当我使用与训练相同的输入测试我的网络时,我得到了完全不同的结果。这是我的密码</p>
<pre><code>from pybrain.structure import FeedForwardNetwork
from pybrain.structure import LinearLayer, SigmoidLayer
from pybrain.structure import FullConnection
import numpy as np
from pybrain.<a href="https://www.cnpython.com/pypi/dataset" class="inner-link">dataset</a>s import SupervisedDataSet
from pybrain.supervised import BackpropTrainer
from pybrain.tools.xml.networkreader import NetworkReader
from pybrain.tools.xml.networkwriter import NetworkWriter
from pybrain.utilities import percentError
n = FeedForwardNetwork()
inLayer = LinearLayer(2)
hiddenLayer = SigmoidLayer(3)
outLayer = LinearLayer(1)
n.addInputModule(inLayer)
n.addModule(hiddenLayer)
n.addOutputModule(outLayer)
in_to_hidden = FullConnection(inLayer, hiddenLayer)
hidden_to_out = FullConnection(hiddenLayer, outLayer)
n.addConnection(in_to_hidden)
n.addConnection(hidden_to_out)
n.sortModules()
X = np.array(([3,5], [5,1], [10,2]),dtype=float)
Y = np.array(([75], [82], [93]),dtype=float)
X/=np.amax(X, axis=0)
Y/=100
print(n.activate([ 1, 2]))
print(in_to_hidden.params)
ds = SupervisedDataSet(2,1)
for i in range(len(X)):
ds.addSample(X[i],Y[i])
trainer=BackpropTrainer(n,ds, learningrate=0.5, momentum=0.05,verbose=True)
trainer.trainUntilConvergence(ds)
trainer.testOnData(ds, verbose=True)
</code></pre>
<p>现在当我想用代码测试输入时
<code>print("Testing",n.activate([3,5]))</code>
我得到<code>('Testing', array([ 1.17809308]))</code>。我应该有大约<code>0.75</code>的这个输入<code>n.activate([3,5])</code>。所以我不明白为什么这个奇怪的结果</p>