[已答复] Matlab神经网络不同的隐含层单元怎么变成?

[复制链接]
yujunhui1207 发表于 2009-9-4 19:55:10
源程序
clear
clc

%原始数据进行归一化处理
p=[1  2   3    4   6  8    10    15     ];
t=[2  3   4    5   10 12   18     15];
[pn,minp,maxp,tn,mint,maxt]=premnmx(p,t);
%建立相应的BP网络4
net=newff(minmax(pn),[2,1],{'tansig','purelin'},'trainlm');
%训练网络
% 训练网络
net.trainParam.show=200;
net.trainParam.lr=0.05;
net.trainParam.mc=0.9;
net.trainParam.epochs=200;
net.trainParam.goal=1e-3;
%调用TRAINGDM算法训练BP网络
net=train(net,pn,tn);
%%%%  对其测试误差 求误差  %%%%%5555
[pn] = tramnmx(p,minp,maxp);
an = sim(net,pn);
[a] = postmnmx(an,mint,maxt);
a

现在我的问题,如何通过编程
使得隐含层单元从2 到7变化

net=newff(minmax(pn),[2,1],{'tansig','purelin'},'trainlm');
net=newff(minmax(pn),[3,1],{'tansig','purelin'},'trainlm');
net=newff(minmax(pn),[4,1],{'tansig','purelin'},'trainlm');
net=newff(minmax(pn),[5,1],{'tansig','purelin'},'trainlm');
net=newff(minmax(pn),[6,1],{'tansig','purelin'},'trainlm');
net=newff(minmax(pn),[7,1],{'tansig','purelin'},'trainlm');

这个程序应该怎么编写?



运行的结果用一个数组 表述出来?

[ 本帖最后由 yujunhui1207 于 2009-9-4 20:21 编辑 ]

2 条回复


yuthreestone 发表于 2009-9-4 20:02:41
  1. 源程序
  2. clear
  3. clc
  4. result=[];
  5. %原始数据进行归一化处理
  6. p=[1 2 3 4 6 8 10 15 ];
  7. t=[2 3 4 5 10 12 18 15];
  8. [pn,minp,maxp,tn,mint,maxt]=premnmx(p,t);
  9. %建立相应的BP网络4
  10. for i=2:7
  11. net=newff(minmax(pn),[i,1],{'tansig','purelin'},'trainlm');
  12. %训练网络
  13. % 训练网络
  14. net.trainParam.show=200;
  15. net.trainParam.lr=0.05;
  16. net.trainParam.mc=0.9;
  17. net.trainParam.epochs=200;
  18. net.trainParam.goal=1e-3;
  19. %调用TRAINGDM算法训练BP网络
  20. net=train(net,pn,tn);
  21. %%%% 对其测试误差 求误差 %%%%%5555
  22. [pn] = tramnmx(p,minp,maxp);
  23. an = sim(net,pn);
  24. [a] = postmnmx(an,mint,maxt);
  25. a
  26. result=[result;i a];
  27. end
复制代码

yujunhui1207 发表于 2009-9-4 20:05:42
谢谢了啊!
我看看 啊 !
呵呵!可以运行!
可以再问下,
如何把每次运行的结果

用数组显示出来?

[ 本帖最后由 yujunhui1207 于 2009-9-4 20:20 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
相关文章
热门教程
站长推荐
快速回复 返回顶部 返回列表