模拟使用ADAPT训练的网络

时间:2015-05-22 05:03:35

标签: matlab neural-network

我使用ADAPT进行简单网络的增量训练,我知道ADAPT改变了权重和偏差,我使用了这个:

clc
clear all
net = linearlayer([0 1 2]);
pi = {[1; 1] [2;2]};
p = {[3 ;4] [5; 6] [7;8]};
t={[40; 50; 60] [10 ;20; 30] [70;60;50]};
net=configure(net,p,t);
net.inputweights{1}.learnparam.lr=0.001
net.adaptParam.passes = 10;
for i=1:1
[net,y,E,pf,af] = adapt(net,p,t,pi);
end

之后,我使用相同的输入模拟该网络:

y1=sim(net,p,pi);

我希望y = y1,但结果y1和y不相等!! 为什么网络输出训练与ADAPT(y)和训练网络的输出(y1)之间存在差异!? ADAPT做了什么?

2 个答案:

答案 0 :(得分:0)

你有它:

net = linearlayer([0 1 2]);
pi = {[1; 1] [2;2]};
p = {[3 ;4] [5; 6] [7;8]};
t = {[40; 50; 60] [10 ;20; 30] [70;60;50]};
net = configure(net,p,t);
net.inputweights{1}.learnparam.lr = 0.001;
net.adaptParam.passes = 10;

view(net)

[net,y,E,pf,af] = train(net,p,t);

tout = net(p);

您可以将adapt()用于培训后应用程序。 matlab文档特别指出,在训练完成后,您可以使用自适应,并且网络在模拟时适应(http://www.mathworks.com/help/nnet/ref/adapt.html

答案 1 :(得分:0)

谢谢你的光荣。 所以我应该在训练后使用ADAPT吗?喜欢这段代码吗?

net = linearlayer([0 1 2]);
pi = {[1; 1] [2;2]};
p = {[3 ;4] [5; 6] [7;8]};
t = {[40; 50; 60] [10 ;20; 30] [70;60;50]};
net = configure(net,p,t);
net.inputweights{1}.learnparam.lr = 0.001;
net.adaptParam.passes = 10;

view(net)

[net,y,E,pf,af] = train(net,p,t);

tout = net(p);
for i=1:100
[net,y,E,pf,af] = adapt(net,p,t,pi);
end

如果是,这是增量培训吗??