gpt4 book ai didi

python - 如何使用 PyBrain 网络拟合函数?

转载 作者:太空狗 更新时间:2023-10-30 00:51:37 27 4
gpt4 key购买 nike

有一个函数如下:y = 罪恶(x)我想使用 PyBrain 网络来适应这些功能,这是我所做的:当你运行它时你会得到我得到的,得到的数据与它应该得到的数据相去甚远。

from pybrain.datasets import SupervisedDataSet
from pybrain.tools.shortcuts import buildNetwork
from pybrain.supervised.trainers import BackpropTrainer
import pickle
import scipy as sp
import numpy as np
import pylab as pl

x = np.linspace(0, 4*np.pi, 100)
ds = SupervisedDataSet(1,1)

for i in x:
ds.addSample(i,sin(i))
print ds

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

fileObject = open('trained_net', 'w')
pickle.dump(n, fileObject)
fileObject.close()

fileObject = open('trained_net','r')
net = pickle.load(fileObject)

y = []
for i in x:
y.append(net.activate(i))

pl.plot(x,y)
pl.plot(x,np.sin(x))
pl.show()

最佳答案

我想你的问题是这个网络不能很好地适应这个功能。网络节点总数太少,无法正确拟合此 sin(x) 函数:函数太复杂。此外,对于任何函数的拟合,原则上不需要超过一个隐藏层。

例如,尝试移除两个隐藏层,并增加隐藏节点的数量(例如,增加到 20 个)。那么您的代码就可以很好地满足该功能

关于python - 如何使用 PyBrain 网络拟合函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10311642/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com