代码如下:直接运行就是了。
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会很接近目标值。
追问![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/c9fcc3cec3fdfc0300f5ef22d53f8794a5c2269e?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)
不好意思字数太多了,只能用图片的形式!
追答你私信把数据传给我
程序:附件中是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文件,
![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/0bd162d9f2d3572c40af7c468b13632763d0c3df?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)
追答data.txt必须放在当前程序运行目录下
追问运行的结果误差很大
![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/9213b07eca8065389c39468996dda144ac34825d?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)
是不是要做归一化处理?
追答有归一化的程序在附件中。
每次运行结果不同。
可以多运行几次。
下面结果是我得出来的最好的一次:
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
追问![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/72f082025aafa40f13e76341aa64034f78f0190c?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)
出现这样的错误?
追答我的2013a
追问非常感谢你,可以留个QQ?有没有2013a的下载地址?