📄 bp1.m
字号:
clc;
clear;
load xunlianx.txt; % 加载训练样本和检验样本
load xunliany.txt;
PP=xunlianx';
TT=xunliany';
echo on
[pn,minp,maxp,tn,mint,maxt]=premnmx(PP,TT);%prestd把数据归一化为单位方差和零均值
%使得归一化后的输入和目标数据均服从正态分布,以提高训练效率.
%创建一个新的前向神经网络
JJ=18;
net=newff(minmax(pn),[JJ,1],{'tansig','purelin'},'trainlm');
%可用L-M优化算法trainlm代替traingdm函数,收敛速度明显优于动量梯度下降法,且得到更小的误差。
net.performFcn='sse'; % 设置训练函数为sse(平方和误差函数)
net.trainParam.show = 50; %两次显示之间的训练次数
net.trainParam.lr = 0.05; %学习速率
net.trainParam.lr_inc = 1.05; %学习速率增长比例因子
net.trainParam.lr_dec = 0.7; %学习速率下降比例因子
net.trainParam.epochs =400; %训练次数
net.trainParam.goal = 10e-3; %网络训练目标mse=9.5238e-004
net.trainParam.mc = 0.95; %动量常数
net.trainParam.min_grad = 1.0e-4; %性能函数的最小梯度
%调用TRAINGDM算法训练BP神经网络
%[net,tr]=train(net,pn,tn);
net = train(net,pn,tn);
echo off
save netRF net;
load net;
load xunlianx.txt; % 加载训练样本和检验样本
load xunliany.txt;
PP=xunlianx';
TT=xunliany';
[pn,minp,maxp,tn,mint,maxt]=premnmx(PP,TT);%prestd把数据归一化为单位方差和零均值
A1=sim(net,pn);
[a] = postmnmx(A1,mint,maxt);
[m,b,r] = postreg(a,TT);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -