ib=net.b{1} lw=net.LW{2,1}lb=net.b{2}%表示对各层神经网络的权值与阈值传递到相应变量。net.trainParam.show=50
net.trainParam.lr=0.05
net.trainParam.mc=0.9
net.trainParam.epochs=10000
net.trainParam.goal=1e-3
net.trainParam.goal=1e-3
%表对神经网络训练参数设置
[net,tr]=train(net,p,t)%对神经网络进行训练
a=sim(net,p)对神经网络进行仿真,输出值传递给a
你看是否满意?
你用的工具箱函数了吗?用工具箱函数可以简单点,工具箱调用是nntool;在commandwindows使用,先用import,将数据分别放入
inputs和targets(导入数据)。然后按NEW
NETWORK选择结构,选择Feedforward
Backprop,确定Number
of
Layers(网络层数),在下面确定每层节点数,然后选择下函数:logsig
,purelin,tansig。最后,关闭此窗口。单击View,即可显示结构。
然后按train,在
inputs和targets里面填入输入值X和训练的Y,在training
parameters中设置你要的参数,比如误差。最后按train就可以开始训练。完了一定记住按网络模型输出(Export),将模型转入command
windows。下面调用:如y1=sim(network1,x0)plot(x,y,'o',x0,y0,y1,':')。
如果你要程序,可以这样:
function
BP
x=[-1:0.01:1]
y=[-1:0.01:1]
p=[xy]
T=x.^2+y.^2
x0=[-1:0.1:1]
y0=[-1:0.1:1]
p0=[x0y0]
T0=x0.^2+y0.^2
net=newff(minmax(p),[10,1],{'logsig','purelin'})
net.trainParam.epochs=10000
net.trainParam.goal=1e-6
net=train(net,p,T)
figure
T1=sim(net,p0)
plot(p,T,'o',p0,T0,p0,T1,':')
end
matlab编写BP神经网络很方便的,这个工作不用像编程序的C什么的那样还要编写算法。这个算法早已经在软件的库里提供了。你只要用一条语句就出来了。把参数,深度和节点固定的往里一代数就可以了。还有一点,注意最后结果的收敛性,神经网络发展一直是曲折前进的,为什么这样,现在不太给力,因为面临着一个收敛的问题,实现起来效果不好。这些程序网上有很多,你借一本基本的神经网络的书里面也有。望采纳。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)