bp网络的两个matlab程序的效率比较.txt

来自「比较两个神经原网络的效率」· 文本 代码 · 共 78 行

TXT
78
字号
%%fast.m 快的程序,用train训练
% BP网络初始化
% 训练样本 P,T
% 输入神经元数 R  5
% 隐含神经元数 S1 10
% 输出神经元数 S2 2 

P=[  0.392   0.583   0.139   0.239   0.10;
0.383   0.568   0.139   0.240   0.10;
  0.368   0.552   0.146   0.241   0.10;
  0.378   0.520   0.169   0.252   0.125]';

T=[  0.3500   0.5075;
  0.3452   0.4912;
  0.3404   0.4749;
  0.367   0.500]';

[R,Q]=size(P);
[S2,Q]=size(T);
S1=10;

[W1, B1]=rands(S1,R);
[W2, B2]=rands(S2,S1); 
%以上是相同部分

%以下是用方法一训练%%%%%%%%%%%%%
net=newff(minmax(P),[R,S1,S2],{'tansig','tansig','purelin'},'trainlm');
% BP网络训练的参数设置
net.LW{2,1}=W1;
net.LW{3,2}=W2;
net.b{2,1}=B1;
net.b{3,1}=B2;

%设置训练参数
net.trainParam.show=1;
net.trainParam.lr=1;
net.trainParam.epochs=50;
net.trainParam.goal=0.001;
%训练网络
net=train(net,P,T);

% 仿真结果
TT=sim(net,P,[],[])

%%slow.m 慢的程序,用trainbp训练
% BP网络初始化
% 训练样本 P,T
% 输入神经元数 R    5
% 隐含神经元数 S1 10
% 输出神经元数 S2 2 

P=[  0.392   0.583   0.139   0.239   0.10;
0.383   0.568   0.139   0.240   0.10;
  0.368   0.552   0.146   0.241   0.10;
  0.378   0.520   0.169   0.252   0.125]';

T=[  0.3500   0.5075;
  0.3452   0.4912;
  0.3404   0.4749;
  0.367   0.500]';

[R,Q]=size(P);
[S2,Q]=size(T);
S1=10;

[W1, B1]=rands(S1,R);
[W2, B2]=rands(S2,S1);
%以上是相同部分 

%以下是用方法二训练%%%%%%%%%%%%%%
% BP网络训练的参数设置
disp_fqre=100; max_epoch=5000; err_goal=0.001; lr=0.01;
TP=[disp_fqre max_epoch err_goal lr];
[W1,B1,W2,B2,te,tr]=trainbp(W1,B1,'tansig',W2,B2,'purelin',P,T,TP);

TT=simuff(P,W1,B1,'tansig',W2,B2,'purelin')
toc % 结束计时

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?