BP神经网络matlab源程序代码讲解

BP神经网络matlab源程序代码讲解,第1张

newff 创建前向BP网络格式:

net = newff(PR,[S1 S2...SNl],{TF1 TF2...TFNl},BTF,BLF,PF)

其中:PR —— R维输入元素的R×2阶最大最小值矩阵; Si —— 第i层神经元的个数,共N1层; TFi——第i层的转移函数,默认‘tansig’; BTF—— BP网络的训练函数,默认‘trainlm’ BLF—— BP权值/偏差学习函数,默认’learngdm’ PF ——性能函数,默认‘mse’;(误差)

e.g.

P = [0 1 2 3 4 5 6 7 8 9 10]T = [0 1 2 3 4 3 2 1 2 3 4]

net = newff([0 10],[5 1],{'tansig' 'purelin'})net.trainparam.show=50 %每次循环50次net.trainParam.epochs = 500 %最大循环500次

net.trainparam.goal=0.01 %期望目标误差最小值

net = train(net,P,T) %对网络进行反复训练

Y = sim(net,P)Figure % 打开另外一个图形窗口

plot(P,T,P,Y,'o')

load data3_1.txt

[m,n]=size( data3_1)

tsx = data3_1(1:m-1,1)

tsx=tsx'

ts = data3_1(2:m,1)

ts=ts'

[TSX,TSXps]=mapminmax(tsx,1,2)

[TS,TSps]=mapminmax(ts,1,2)

TSX=TSX'

figure

plot(ts,'LineWidth',2)

title('到杭旅游总人数(1999.01.01-2009.12.31)','FontSize',12)

xlabel('统计年份(1990.12.19-2009.08.19)','FontSize',12)

ylabel('归一化后的总游客数/万人','FontSize',12)

grid on

% 生成BP网络、利用minmax函数求输入样本范围

net_1=newff(minmax(TS),[10,1],{'tansig','purelin'},'traincgf')

% 设置训练参数

net_1.trainParam.show = 50 %显示训练迭代过程(NaN表示不显示,缺省25)

net_1.trainParam.lr = 0.025%学习率(缺省0.01)

net_1.trainParam.mc = 0.9 %动量因子(缺省0.9)

net_1.trainParam.epochs = 10000%最大训练次数

net_1.trainParam.goal = 0.001 %训练要求精度

inputWeights=net_1.IW{1,1} %输入层权值

inputbias=net_1.b{1} %输入层阈值

layerWeights=net_1.LW{2,1} %输出层权值

layerbias=net_1.b{2} %输出层阈值

TS',TSX

% 网络训练

[net_1,tr]=train(net_1,TS,TSX)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7821033.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-10
下一篇 2023-04-10

发表评论

登录后才能评论

评论列表(0条)

保存