我使用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是做什么的?
发布于 2015-05-24 05:42:14
现在你就知道了:
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)之后才使用自适应。
发布于 2015-06-04 00:47:22
谢谢你,布莱恩。所以我应该在训练后使用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如果是,这是增量训练吗!?
https://stackoverflow.com/questions/30388696
复制相似问题