在Matlab中,如果您构建一个简单的网络并对其进行培训:
OP = feedforwardnet(5, 'traingdm');
inputsVals = [0,1,2,3,4];
targetVals = [3,2,5,1,9];
OP = train(OP,inputsVals,targetVals);然后你再训练一次,让另一个OP = train(OP,inputsVals,targetVals);
网络发生了什么?它是根据你第一次做OP = train(OP,inputsVals,targetVals);时学到的再次训练,还是像第一次训练网络一样进行训练。
发布于 2015-07-09 18:15:42
它再次根据你第一次做OP = train(OP,inputsVals,targetVals)时所学到的知识进行训练。更普遍地说,train使用网络的权重,即它不初始化权重。权值初始化在feedforwardnet中进行。
示例:
% To generate reproducible results
% http://stackoverflow.com/a/7797635/395857
rng(1234,'twister')
% Prepare input and target vectors
[x,t] = simplefit_dataset;
% Create ANN
net = feedforwardnet(10);
% Loop to see where train() initializes the weights
for i = 1:10
% Learn
net.trainParam.epochs = 1;
net = train(net,x,t);
% Score
y = net(x);
perf = perform(net,y,t)
end产量
perf =
0.4825
perf =
0.0093
perf =
0.0034
perf =
0.0034
perf =
0.0034
perf =
0.0034
perf =
0.0034
perf =
0.0034
perf =
0.0034
perf =
0.0028https://datascience.stackexchange.com/questions/6410
复制相似问题