我已经训练了一个 ffnn 来适应 pybrain 的未知函数。我像这样构建ffnn
net = buildNetwork(1, 2, 1,hiddenclass=TanhLayer)
我对 pybrain 说用命令打印网络的参数
print net.params
pybrain 将参数返回给我
(1.76464967 , 0.46764103 , 1.63394395 ,-0.95327762 , 1.19760151, -1.20449402, -1.34050959)
现在我想在另一个脚本中使用这个拟合函数。我试过了
def netp(Q):
net = buildNetwork(1, 2, 1,hiddenclass=TanhLayer)
net._setParameters=(1.76464967 , 0.46764103 , 1.63394395 ,-0.95327762 , 1.19760151, -1.20449402, -1.34050959)
arg=1.0/float(Q)
p=float(net.activate([arg]))
return p
问题是从网络返回的值完全不在意。例子
0.0749046652125 1.0
-2.01920546405 0.5
-1.54408069672 0.333333333333
1.05895945271 0.25
-1.01314347373 0.2
1.56555648799 0.166666666667
0.0824497539453 0.142857142857
0.531176423655 0.125
0.504185707604 0.111111111111
0.841424535805 0.1
其中第一列是网络的输出,第二列是输入。网络的输出必须接近输入值。有什么问题?我在哪里做错了?这是过度拟合的问题还是我遗漏了什么?