看到论坛里很多朋友都在提问如何存储和调用已经训练好的神经网络。
本人前几天也遇到了这样的问题,在论坛中看了大家的回复,虽然都提到了关键的两个函数“save”和“load”,但或多或少都简洁了些,让人摸不着头脑(呵呵,当然也可能是本人太菜)。通过不断调试,大致弄明白这两个函数对神经网络的存储。下面附上实例给大家做个说明,希望对跟我有一样问题的朋友有所帮助。
如果只是需要在工作目录下保到当前训练好的网络,可以在命令窗口
输入:save net %net为已训练好的网络
然后在命令窗口
输入:load net %net为已保存的网络
加载net。
但一般我们都会在加载完后对网络进行进一步的操作,建议都放在M文件中进行保存网络和调用网络的操作
如下所示:
%% 以函数的形式训练神经网络
function shenjingwangluo()
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')
%创建一个新的前向神经网络
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=0.0002;
%调用算法训练BP网络
[net,tr]=train(net,P,T);
%保存训练好的网络在当前工作目录下的aaa 文件中,net为网络名
save('aaa', 'net');
%也可以采用 格式“save aaa net;”
%若要保存到指定目录用 “'save('d:\aaa.mat', 'net');”这样就保存到指定的目录下了
%%调用网络,以函数的形式
function jiazaiwangluo()
%网络加载,注意文件名要加单引号
load('-mat','aaa');
%从指定目录加载“load('-mat','d:\aaa.mat'); ”
P=[3;4]
A=sim(net,P)%对网络进行仿真
上面两个函数都已经调试成功,有需要的朋友可以试试看,希望对大家有帮助。
本人前几天也遇到了这样的问题,在论坛中看了大家的回复,虽然都提到了关键的两个函数“save”和“load”,但或多或少都简洁了些,让人摸不着头脑(呵呵,当然也可能是本人太菜)。通过不断调试,大致弄明白这两个函数对神经网络的存储。下面附上实例给大家做个说明,希望对跟我有一样问题的朋友有所帮助。
如果只是需要在工作目录下保到当前训练好的网络,可以在命令窗口
输入:save net %net为已训练好的网络
然后在命令窗口
输入:load net %net为已保存的网络
加载net。
但一般我们都会在加载完后对网络进行进一步的操作,建议都放在M文件中进行保存网络和调用网络的操作
如下所示:
%% 以函数的形式训练神经网络
function shenjingwangluo()
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')
%创建一个新的前向神经网络
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=0.0002;
%调用算法训练BP网络
[net,tr]=train(net,P,T);
%保存训练好的网络在当前工作目录下的aaa 文件中,net为网络名
save('aaa', 'net');
%也可以采用 格式“save aaa net;”
%若要保存到指定目录用 “'save('d:\aaa.mat', 'net');”这样就保存到指定的目录下了
%%调用网络,以函数的形式
function jiazaiwangluo()
%网络加载,注意文件名要加单引号
load('-mat','aaa');
%从指定目录加载“load('-mat','d:\aaa.mat'); ”
P=[3;4]
A=sim(net,P)%对网络进行仿真
上面两个函数都已经调试成功,有需要的朋友可以试试看,希望对大家有帮助。