net reusing
이전 댓글 표시
Hi, I'm creating a set of nets using a code more or less like this:
net = patternnet(10);
% net initialization
% ...
for ii=1:10
net = train(net,in,tar);
netSet{ii} = net;
end
What I see is the first training takes relatively a lot of time, while the others usually are far faster. So a question comes to my mind: could be each new training starts from the previous net? If so, is there a function to re-randomize the initial weights (without the need to allocate a new net)?
채택된 답변
추가 답변 (2개)
Greg Heath
2011년 12월 16일
1 개 추천
Patternnet is selfinitializing. Therefore
1. Initialize the rand RNG
2. Create an outer loop over nH number of candidate values for H, the number of hidden nodes
3. Create an inner loop of Ntrials random initialization designs.
4. Bottom Line: Each of the nH*Ntrials designs begins with a different set of initial weights.
Hope this helps.
Greg
댓글 수: 3
Luca Cavazzana
2011년 12월 16일
Greg Heath
2011년 12월 18일
No, weight randomization only occurs when the net is created
( e.g., net = newff(...))
Greg
Greg Heath
2011년 12월 18일
No, weight randomization only occurs when the net is created
( e.g., net = newff(...))
Greg
Greg Heath
2014년 2월 17일
With the current set of net creation functions ( e.g., fitnet, patternnet, feedforwardnet,...) weight initialization does not occur at net creation.
If weights have not been assigned, they will be automatically initialized by train. Otherwise, train will just use the existing weights.
Therefore, when designing multiple nets in a loop, the function configure must be used to initialize the nets at the top of the loop before train is called.
net = configure(net, x, t);
카테고리
도움말 센터 및 File Exchange에서 Deep Learning Toolbox에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!