matlab中 BP神经网络怎么构建多个隐层

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab中 BP神经网络怎么构建多个隐层相关的知识,希望对你有一定的参考价值。

我设计的程序newff是:
net=newff(minmax(p),[4,1],‘tansig’, ‘purelin’,‘trainlm’);
只有一个隐层,现在想构建多隐层,上网查了下,都说只要在[4,1]中间加一个数代表第二隐层的节点数就可以,我试过了,改成
net=newff(minmax(p),[4,6,1],‘tansig’, ‘purelin’,‘trainlm’);
语句报错,请教,怎么实现bp神经网络的多隐层编程啊??
程序如下:
clear all
close all
p1=[1 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30];
t=[];
t_m=t.';
pr=[1 30];
for i=1:12
net=newff(pr,[200,200,1],'tansig' 'tansig' 'purelin','trainlm');
net.trainparam.goal=0.00001;
net.trainparam.epochs=10000;
[net,tr]=train(net,p1,t_m(i,:));
A(i,:)=sim(net,p1);
figure
plot(p1,t(:,i),'r')
hold on
plot(p1,A(i,:),'b:o')
hold on

end
t太长 没有写 正如1楼说的 少加了一个传输函数 不过加上之后还是报错 报错如下:
??? Maximum variable size allowed by the program is exceeded.

Error in ==> calcjejj at 121
JJ = Jx * Jx';

Error in ==> trainlm at 265
[je,jj,normgX]=calcjejj(net,Pd,Zb,Zi,Zl,N,Ac,El,Q,TS,mem_reduc);

Error in ==> network.train at 278
[net,tr,Ac,El] = feval(trainFcn,net,Pd,Tl,Ai,Q,TS,VV,TV);

Error in ==> Untitled11 at 17
[net,tr]=train(net,p1,t_m(i,:));

参考技术A 把报错内容写以下吧,我猜可能是你传输函数没有加吧
‘tansig’, ‘purelin’改成‘tansig’,‘tansig’, ‘purelin’试试?本回答被提问者采纳

以上是关于matlab中 BP神经网络怎么构建多个隐层的主要内容,如果未能解决你的问题,请参考以下文章

MATLAB中BP神经网络的训练算法具体是怎么样的

MATLAB中训练LM算法的BP神经网络

字母识别基于matlab BP神经网络英文字母识别含Matlab源码 2226期

神经网络BP算法解决XOR异或问题MATLAB版

bp神经网络 激活单元相关问题sigmoid?matlab

BP神经网络的理论理论常识