求一个4,8,1的bp神经网络模型的matlab代码?

求一个4,8,1的bp神经网络模型的matlab代码?

代码如下:直接运行就是了。

P=P=[-1,  -2,    3,    1;       -1,    1,    5,  -3; -2,  3, 4, 6;  1, 2, 3,  4 ];%初始训练值




%  创建一个新的前向神经网络 
net=newff(minmax(P),[8,1],{'tansig','purelin'},'traingdm')
%  当前输入层权值和阈值 
inputWeights=net.IW{1,1} 
inputbias=net.b{1} 
%  当前网络层权值和阈值 
layerWeights=net.LW{2,1} 
layerbias=net.b{2} 
%  设置训练参数 
net.trainParam.show = 50; 
net.trainParam.lr = 0.05; 
net.trainParam.mc = 0.9; 
net.trainParam.epochs = 1000; 
net.trainParam.goal = 1e-3; 
%  调用 TRAINGDM 算法训练 BP 网络 
[net,tr]=train(net,P,T); 
%  对 BP 网络进行仿真 
A = sim(net,P) %最后结果
%  计算仿真误差 
E = T - A 
MSE=mse(E)

追问

这个程序中的T没有定义,出错了,谢谢你的回答,可不可以留个QQ指导一下?

追答P=P=[-1,  -2,    3,    1;       -1,    1,    5,  -3; -2,  3, 4, 6;  1, 2, 3,  4 ];%初始训练值
 
% T 为目标矢量 
T=[-1, -1, 1, 1]; 

%  创建一个新的前向神经网络 
net=newff(minmax(P),[8,1],{'tansig','purelin'},'traingdm')
%  当前输入层权值和阈值 
inputWeights=net.IW{1,1} 
inputbias=net.b{1} 
%  当前网络层权值和阈值 
layerWeights=net.LW{2,1} 
layerbias=net.b{2} 

%  设置训练参数 
net.trainParam.show = 50; 
net.trainParam.lr = 0.05; 
net.trainParam.mc = 0.9; 
net.trainParam.epochs = 1000; 
net.trainParam.goal = 1e-3; 

%  调用 TRAINGDM 算法训练 BP 网络 
[net,tr]=train(net,P,T); 

%  对 BP 网络进行仿真 
A = sim(net,P) %最后结果
%  计算仿真误差 
E = T - A 
MSE=mse(E)

不小心删掉了。不好意思哦

追问

为何T=[-1, -1, 1, 1]?是根据什么?

追答

T=[-1, -1, 1, 1]是目标值。你也可以改成其它目标啊。看你要达到什么要求了。

最后结果A会很接近目标值。

追问


不好意思字数太多了,只能用图片的形式!

追答

你私信把数据传给我

程序:附件中是txt数据文件。下面程序实现训练1 2 3 4列数据,目标为第5列

load data.txt
P=data(:,[1 2 3 4])';
% T 为目标矢量 
T=data(:,5)'; 
%  创建一个新的前向神经网络 
net=newff(minmax(P),[8,1],{'tansig','purelin'},'traingdm');
%  当前输入层权值和阈值 
inputWeights=net.IW{1,1} ;
inputbias=net.b{1} ;
%  当前网络层权值和阈值 
layerWeights=net.LW{2,1} ;
layerbias=net.b{2} ;
%  设置训练参数 
net.trainParam.show = 50; 
net.trainParam.lr = 0.05; 
net.trainParam.mc = 0.9; 
net.trainParam.epochs = 1000; 
net.trainParam.goal = 1e-3; 
%  调用 TRAINGDM 算法训练 BP 网络 
[net,tr]=train(net,P,T); 
%  对 BP 网络进行仿真 
A = sim(net,P) %最后结果
%  计算仿真误差 
E = T - A ;
MSE=mse(E)


追问

不好意思,不知道怎样导入txt文件,

追答

data.txt必须放在当前程序运行目录下

追问

运行的结果误差很大

是不是要做归一化处理?

追答

有归一化的程序在附件中。

每次运行结果不同。

可以多运行几次。

下面结果是我得出来的最好的一次:

 Columns 1 through 7


   10.1488   10.2928    9.4942    8.1402    8.2040    8.0545    8.5741


  Columns 8 through 14


    9.7602    8.7021    8.9620    8.3217    8.2075    8.1827    8.2318


  Columns 15 through 21


    9.7949    8.9074    8.3386    8.3081    8.1104    8.1161    8.1484


  Columns 22 through 23


    8.2904    8.1238



MSE =


    0.1712


追问

出现这样的错误?

追答

我的2013a

追问

非常感谢你,可以留个QQ?有没有2013a的下载地址?

温馨提示:答案为网友推荐,仅供参考