资源描述:
《matlab训练好的bp神经网络如何保存和读取方法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Matlab训练好的BP神经网络如何保存和读取方法(附实例说明)看到论坛里很多朋友都在提问如何存储和调用已经训练好的神经网络。本人前几天也遇到了这样的问题,在论坛中看了大家的回复,虽然都提到了关键的两个函数“save”和“load”,但或多或少都简洁了些,让人摸不着头脑(呵呵,当然也可能是本人太菜)。通过不断调试,大致弄明白这两个函数对神经网络的存储。下面附上实例给大家做个说明,希望对跟我有一样问题的朋友有所帮助。如果只是需要在工作目录下保到当前训练好的网络,可以在命令窗口输入:save net %net为已训练好的网
2、络然后在命令窗口输入:load net %net为已保存的网络加载net。但一般我们都会在加载完后对网络进行进一步的操作,建议都放在M文件中进行保存网络和调用网络的操作如下所示:%%以函数的形式训练神经网络functionshenjingwangluo()P=[-1,-2,3,1; -1,1,5,-3];%P为输入矢量T=[-1,-1,1,1,];%T为目标矢量net=newff(minmax(P),[3,1],{'tansig','purelin'},'traingdm')%创建一个新的前向神经网络inputWei
3、ghts=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=0.0002;%调用算法训练BP网络[net,tr]=train(net,P,T);%保存训练好的网络在当前工作目录下的aa
4、a文件中,net为网络名save('aaa','net');%也可以采用格式“saveaaanet;”%若要保存到指定目录用“'save('d:aaa.mat','net');”这样就保存到指定的目录下了%%调用网络,以函数的形式functionjiazaiwangluo()%网络加载,注意文件名要加单引号load('-mat','aaa');%从指定目录加载“load('-mat','d:aaa.mat');”P=[3;4]A=sim(net,P)%对网络进行仿真%上面两个函数都已经调试成功,有需要的朋友可以试试看,
5、希望对大家有帮助。用train训练一个BP神经网络,仿真后,怎么在MATLAB上显示出你训练后的BP神经网络的各层权值和偏值啊?我也来说两句查看全部回复最新回复·chang_bo321(2009-9-2115:23:11)net.IW{1,1}; 输入层到隐层的权值net.b{1,1}; 输入层到隐层的阈值net.IW{2,1}; 隐层到输出层的权值net.b{2,1}; 隐层到输出层的阈值·郁磊(2009-9-2115:43:56)隐层到输出层应该是
6、net.LW{2,1}·joe19852008(2009-11-1713:12:44)顶起3楼!2楼小错误可得小心~~·njsdxiaoxiao(2009-12-0218:18:06)那么如果是两个隐层的情况,权值又是怎么样的?从输入层到第一层隐层,第一隐层到第二隐层,第二隐层到输出层分别是多少?·joe19852008(2009-12-0220:28:29)我认为是这样的:net.IW{1,1}; 输入层到第一层隐层的权值net.b{1,1}; 输入层到第一层隐层的阈值net.LW{2
7、,1}; 第一层隐层到第二层隐层的权值net.b{2,1}; 第一层隐层到第二层隐层的阈值net.LW{3,2}; 第二层隐层到输出层的权值net.b{3,2}; 第二层隐层到输出层的阈值其实没有什么第一层隐层,第二层隐层这样的叫法,我认为是这样称呼:输入层->第一层->第二层->……->输出层。另外,知道IW表示inputweight;LW表示layerweight,那么你想得到哪个权值或阈值就没问题了。·hgsz2003(2009-12-0221:41:5
8、1)QUOTE:原帖由joe19852008于2009-12-220:28发表我认为是这样的:net.IW{1,1}; 输入层到第一层隐层的权值net.b{1,1}; 输入层到第一层隐层的阈值net.LW{2,1}; 第一层隐层到第二层隐层的权值net.