我根据可用数据做出预测。但他们错了。而且我不知道为什么。 我有代码创建和训练神经网络。
ds = SupervisedDataSet(3, 1)
ds.addSample( (76.7, 13.8, 103.0), (770,))
ds.addSample( (70.9, 13.0, 92.0), (650,))
ds.addSample( (65.6, 15.9, 104.3), (713,))
ds.addSample( (59.3, 14.8, 88.0), (593,))
ds.addSample( (50.0, 13.0, 65.2), (443,))
ds.addSample( (44.9, 17.6, 79.0), (547,))
ds.addSample( (44.3, 18.4, 78.6), (553,))
ds.addSample( (44.4, 18.4, 81.8), (576,))
net = buildNetwork(ds.indim, 5, ds.outdim, bias=True)
trainer = BackpropTrainer(net, dataset=ds, verbose=True,learningrate=0.05)
trainer.setData(ds)
trainer.trainEpochs(100)
但是当我写作
net.activate((76.7, 13.8, 103.0))
我得错了结果数组([570.34849909])。当我更改输入值时,结果不会改变。例如,net.activate((76.7,13.8,90.0)) - 数组([570.34849909])。
我不明白如何解决它。我尝试了不同的学习方法,隐藏层中不同数量的神经元,以及不同数量的时代。
答案 0 :(得分:0)
我找到了问题的解决方案。在训练之前必须对数据进行标准化。这大大提高了培训的有效性。最后代码:
leaf3