亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? trainpso.m

?? 此為微粒群優化算法PSO工具箱
?? M
字號:
%TRAINPSO Particle Swarm Optimization backpropagation.
%
%  Syntax
%  
%    [net,tr,Ac,El] = trainpso(net,Pd,Tl,Ai,Q,TS,VV,TV)
%    info = trainpso(code)
%
%  Description
%
%    TRAINPSO is a network training function that updates weight and
%    bias values according to particle swarm optimization.
%
%    TRAINPSO(NET,Pd,Tl,Ai,Q,TS,VV,TV) takes these inputs,
%      NET - Neural network.
%      Pd  - Delayed input vectors.
%      Tl  - Layer target vectors.
%      Ai  - Initial input delay conditions.
%      Q   - Batch size.
%      TS  - Time steps.
%      VV  - Empty matrix [] or structure of validation vectors.
%      TV  - Empty matrix [] or structure of test vectors.
%    and returns:
%      NET - Trained network.
%      TR  - Training record of various values over each epoch:
%            TR.epoch - Epoch number.
%            TR.perf  - Training performance.
%            TR.vperf - Validation performance.
%            TR.tperf - Test performance.
%      Ac  - Collective layer outputs for last epoch.
%      El  - Layer errors for last epoch.
%
%    Training occurs according to the TRAINPSO's training parameters
%    shown here with their default values:
%     trainParam.display  = 0;           iterations to update display (0 means never)
%     trainParam.maxit    = 2000;        maximum iterations
%     trainParam.popsz    = 25;          population size
%     trainParam.ac       = [2,2];       acceleration constants (for type = 0)
%     trainParam.inwt     = [0.9,0.4];   inertia weights (for type = 0)
%     trainParam.it_inwt  = floor(0.8*trainParam.maxit) iters to reach final inertia weight
%     trainParam.egd      = 1e-9;        minimum error gradient
%     trainParam.iter_egd = floor(0.2*trainParam.maxit) iters at errgrad value before exit
%     trainParam.eg       = 0;           error goal, NaN is unconstrained
%     trainParam.type     = 2;           chooses type of pso (common, clerc, etc)
%     trainParam.seedflag = 0;           flag to tell if we want to seed particles
%     trainParam.plotfcn  = 'goplotpso'; plotting function  
%     trainParam.seedvals = NaN;         Seed values
%
%    TRAINPSO(CODE) returns useful information for each CODE string:
%      'pnames'    - Names of training parameters.
%      'pdefaults' - Default training parameters.

% Structure of this code was taken from traingd.m by:
% Mark Beale, 11-31-97
% Copyright 1992-2002 The MathWorks, Inc.
% $Revision: 1.10 $ $Date: 2002/04/14 21:35:53 $
%
% All the PSO specific stuff is of course by Brian Birge
% Rev 1.0 - 8/31/05

function [net,tr,Ac,El,v5,v6,v7,v8] = ...
   trainpso(net,Pd,Tl,Ai,Q,TS,VV,TV,v9,v10,v11,v12)

  %global Tl Pd net Ai Q TS simfuncname
  
% FUNCTION INFO
% =============

if isstr(net)
  switch (net)
    case 'pnames',
      net = {...
             'display  = iterations to update display (0 means never)';...
             'maxit    = maximum iterations';...
             'popsz    = population size';...
             'ac       = acceleration constants (for type = 0)';...
             'inwt     = inertia weights (for type = 0)';...
             'it_inwt  = iterations to reach final inertia weight';...
             'egd      = minimum error gradient';...
             'iter_egd = # of iters at errgrad value before exit';...
             'eg       = error goal, NaN means unconstrained';...
             'type     = version of pso to use (0=common, 1,2=Trelea, 3=Clerc)';...
             'seedflag = 0 for no seed, 1 for seeded particles';...
             'plotfcn  = plot function to use if display ~= 0';...
             'seedvals = initial particle positions to use if seedflag~=0';...
             'minmax   = variable range for search [min,max], each row is a dimension';...
             'mvden    = maximum velocity divisor, default = 2';...
             'IWrange  = range to search for initial layer weights [min,max], default = [-100,100]';...
             'LWrange  = range to search for hidden/output layer weights [min,max], default = [-100,100]';...
             'BIrange  = range to search for hidden/output biases [min,max], default = [-8,8]';...
             'outlyrrange = range of output layer weights [min,max], defaults same as LWrange';...
            };

    case 'pdefaults',
      trainParam.display  = 25;    % iterations to update display (0 means never)
      trainParam.maxit    = 2000;  % maximum iterations
      trainParam.popsz    = 25;    % population size
      trainParam.ac       = [2,2]; % acceleration constants (for type = 0)
      trainParam.inwt     = [0.9,0.4]; % inertia weights (for type = 0)
      trainParam.it_inwt  = floor(0.8*trainParam.maxit); % iterations to reach final inertia weight
      trainParam.egd      = 1e-9;  % minimum error gradient
      trainParam.iter_egd = floor(0.2*trainParam.maxit); % # of iters at errgrad value before exit
      trainParam.eg       = 0;     % NaN is unconstrained optimization
      trainParam.type     = 2;     % chooses type of pso (common, clerc, etc)
      trainParam.seedflag = 0;     % flag to tell if we want to seed particles
      trainParam.plotfcn  = 'goplotpso4net';
      trainParam.seedvals = NaN; % only activated if seedflag == 1
      
      % this little section allows different search ranges based on whether
      % parameter is initial layer weight, hidden layer weight, or bias.
      % This has varying degrees of usefuleness depending on your activation function
      % choices and whether you normalize the i/o to the net
      trainParam.IWrange = [-100,100]; % Initial Layer Weight Range for search
      trainParam.LWrange = [-100,100]; % Hidden Layer Weight Range for search
      trainParam.BIrange = [-8,8]; % Bias Range for search
      trainParam.outlyrrange = trainParam.LWrange; % output layer weights, useful if you have a purelin act fcn for the output layer, you can then make this larger
      trainParam.mvden  = 2;
      % trainParam.keymap = ???? <--- this must be calculated in trainpso after
      %trainParam.minmax = ???? ; % default variable range, setup below using IWrange, LWrange, BIrange
      
      % initialization
      net = trainParam;
      
    otherwise,
      error('Unrecognized code.')
  end
  return
end

% this part needed to pass to goplotpso4net
P = Pd{1};
T = Tl{end};

% setup min/max values separately for bias, input weight, and layer weights
% this uses hacked code from getx.m to figure out which indices in the vector
% correspond to biases, input weights, and layer weights

% keymap variable is useful for quickly finding out what is a weight and what is
% a bias, used in goplotpso4net
% the minmax variable is needed by the PSO to determine search ranges for each
% particle component, this mess here just allows separate search ranges for
% bias, initial layer weight, and hidden layer weight, NOTICE!!! --> the 2
% variables keymap and minmax are not created during a call to newff, they are
% created only at first call to train, when using trainpso
   inputLearn     = net.hint.inputLearn;
   layerLearn     = net.hint.layerLearn;
   biasLearn      = net.hint.biasLearn;
   inputWeightInd = net.hint.inputWeightInd;
   layerWeightInd = net.hint.layerWeightInd;
   biasInd        = net.hint.biasInd;

   % setup range for weights & biases used in training
   % and create key telling us which indices are for input weights, layer
   % weights, or biases, when using x=getx(net);
   % keymap = [x,y], where x tells whether it is a weight or bias, and y is
   % the hidden/output layer associated with it
   % x=0 bias
   % x=1 initial layer weight
   % x=2 hidden/output layer weight
   % y = layer that x is on
   net.trainParam.minmax = zeros(net.hint.xLen,2);
   net.trainParam.keymap = zeros(net.hint.xLen,2);
   for i=1:net.numLayers
     for j=find(inputLearn(i,:))
       % range to search for input weights 
       net.trainParam.minmax(inputWeightInd{i,j},1:2) =...
          repmat(net.trainParam.IWrange,length(inputWeightInd{i,j}),1);
       
       net.trainParam.keymap(inputWeightInd{i,j},1:2) =...
          repmat([1,i],length(inputWeightInd{i,j}),1);
       
     end
     
     for j=find(layerLearn(i,:))
       % range to search for layer weights  
       net.trainParam.minmax(layerWeightInd{i,j},1:2) =...
          repmat(net.trainParam.LWrange,length(layerWeightInd{i,j}),1);
       
       net.trainParam.keymap(layerWeightInd{i,j},1:2) =...
          repmat([2,i],length(layerWeightInd{i,j}),1);
     end

     if biasLearn(i)
       % range to search for biases  
       net.trainParam.minmax(biasInd{i},1:2) =...
          repmat(net.trainParam.BIrange,length(biasInd{i}),1);
       
       net.trainParam.keymap(biasInd{i},1:2) =...
          repmat([0,i],length(biasInd{i}),1);
     end
   end
   for j=find(layerLearn(net.numLayers,:))
       net.trainParam.minmax(layerWeightInd{net.numLayers,j},1:2) =...
          repmat(net.trainParam.outlyrrange,length(layerWeightInd{net.numLayers,j}),1);
   end
%------------------------------------------------------------------------------
%------------------------------------------------------------------------------
%------------------------------------------------------------------------------
% CALCULATION
% ===========
%assignin('base','net',net);
% Generate functions
simfunc         = gensimm(net);
[x,simfuncname] = fileparts(simfunc);

% Constants
this = 'TRAINPSO';
doValidation = ~isempty(VV);
doTest = ~isempty(TV);

% Initialize
stop = '';
startTime = clock;
X = getx(net);

if (doValidation)
  VV.net = net;
  vperf = feval(simfuncname,net,VV.Pd,VV.Ai,VV.Tl,VV.Q,VV.TS);
  VV.perf = vperf;
  VV.numFail = 0;
end
tr = newtr(net.trainParam.maxit,'perf','vperf','tperf');

% extract network architecture and convert to format needed for PSO runs
dims=length(X);

% PSO Parameters
mvden    = net.trainParam.mvden; % max velocity divisor
varrange = [];
mv       = [];

minx        = net.trainParam.minmax(:,1);
maxx        = net.trainParam.minmax(:,2);

for i=1:dims
   if length(minx)<dims
     varrange = [varrange;minx(1) maxx(1)]; 
   else
     varrange = [varrange;minx(i) maxx(i)];
   end
   mv       = [mv;(varrange(i,2)-varrange(i,1))/mvden];
end
minmax   = 0; % sets pso to 'minimize'

shw         = net.trainParam.display;
epoch       = net.trainParam.maxit;
ps          = net.trainParam.popsz;
ac          = net.trainParam.ac;
Iwt         = net.trainParam.inwt;
wt_end      = net.trainParam.it_inwt;
errgrad     = net.trainParam.egd;
errgraditer = net.trainParam.iter_egd;
errgoal     = net.trainParam.eg;
modl        = net.trainParam.type;
PSOseedflag = net.trainParam.seedflag;

psoparams   = [shw epoch ps ac(1) ac(2) Iwt(1) Iwt(2) wt_end errgrad ...
               errgraditer errgoal modl PSOseedflag];

plotfcn     = net.trainParam.plotfcn;
PSOseedVal  = net.trainParam.seedvals;

% call PSO routine, returns weights and biases of new network
[pso_out, tr.epoch, tr.perf] = pso_Trelea_vectorized('pso_neteval', dims, mv,...
                                          varrange,...
                                          minmax, psoparams, plotfcn,...
                                          PSOseedVal);

%assignin('base','bestweights',pso_out(1:end-1));

% apply new weights and biases to network
net = setx(net,pso_out(1:end-1));
% this is just to get El and Ac to return to caller
[perf,El,Ac,N,Zl,Zi,Zb] = feval(simfuncname,net,Pd,Ai,Tl,Q,TS);

return

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品1区2区3区| 日韩毛片一二三区| 中文字幕一区二区三区四区 | 亚洲人成网站在线| 日韩avvvv在线播放| 不卡视频在线观看| 精品国产一二三区| 亚洲成av人综合在线观看| bt7086福利一区国产| 精品国产91乱码一区二区三区 | 色综合av在线| 久久午夜羞羞影院免费观看| 亚洲v中文字幕| 色综合久久综合网欧美综合网 | 一区二区三区四区在线| 国产在线精品免费| 日韩网站在线看片你懂的| 亚洲欧美激情在线| 91小视频在线免费看| 国产精品视频免费| 国产精品亚洲成人| 久久日韩精品一区二区五区| 日本v片在线高清不卡在线观看| 欧美综合欧美视频| 夜夜精品浪潮av一区二区三区| 99国产精品久久久| 中文字幕一区二区在线播放| 丁香一区二区三区| 亚洲国产精品国自产拍av| 国产麻豆精品theporn| 欧美成人video| 精彩视频一区二区| 精品区一区二区| 国产精品自在欧美一区| 精品奇米国产一区二区三区| 国产在线播放一区| 久久精品夜色噜噜亚洲a∨| 国产一区二区久久| 国产午夜亚洲精品羞羞网站| 国产精品一区二区无线| 国产精品久久久久一区二区三区共| 国产成人精品一区二区三区网站观看| 久久亚洲免费视频| av在线这里只有精品| 亚洲久草在线视频| 欧美丝袜丝交足nylons图片| 亚洲成人av在线电影| 3atv一区二区三区| 国产一区二区三区免费播放| 国产精品狼人久久影院观看方式| 色综合久久久久久久| 亚洲第一主播视频| 亚洲精品在线观看网站| 国产成人av一区二区三区在线观看| 国产精品无码永久免费888| 91免费在线播放| 日本欧美大码aⅴ在线播放| 精品国产免费一区二区三区香蕉| 国产99久久久国产精品潘金 | 欧美激情在线一区二区三区| 99视频精品在线| 日韩极品在线观看| 久久久久久久久久看片| 99国产麻豆精品| 石原莉奈在线亚洲三区| 久久久久久一二三区| 欧美自拍偷拍午夜视频| 久久国产视频网| 日韩一区在线看| 欧美一级黄色片| 波多野结衣欧美| 欧美a级一区二区| 日本一区二区三区久久久久久久久不 | 精品国产91乱码一区二区三区| 成人av资源在线观看| 日韩和的一区二区| 国产精品美日韩| 日韩三级电影网址| 日本精品一区二区三区四区的功能| 青青草国产精品亚洲专区无| 中文字幕一区二区三区在线播放 | 国产日韩成人精品| 91国产福利在线| 国产成人免费视频精品含羞草妖精| 亚洲影院在线观看| 国产精品美女视频| 精品动漫一区二区三区在线观看| 欧美色图片你懂的| 99国产精品久久久久久久久久| 捆绑调教美女网站视频一区| 樱花草国产18久久久久| 国产日韩亚洲欧美综合| 精品欧美久久久| 欧美久久久久久蜜桃| 91视频免费观看| 国产69精品一区二区亚洲孕妇| 麻豆精品在线看| 日韩av中文在线观看| 亚洲成a人片综合在线| 亚洲男人天堂av网| 最新热久久免费视频| 国产女同互慰高潮91漫画| 精品国产a毛片| 日韩免费观看2025年上映的电影| 欧美日韩一区二区三区免费看| 91美女片黄在线观看| 91亚洲国产成人精品一区二区三 | 欧美无砖专区一中文字| 91一区在线观看| 97se亚洲国产综合自在线不卡| 国产91富婆露脸刺激对白| 国产成人午夜视频| 国产一区二区三区av电影| 国内精品自线一区二区三区视频| 久久精品国产精品亚洲综合| 无吗不卡中文字幕| 免费看黄色91| 国精产品一区一区三区mba视频 | 丝袜诱惑亚洲看片| 亚洲成年人网站在线观看| 亚洲午夜在线视频| 亚洲成a人v欧美综合天堂| 日韩1区2区日韩1区2区| 久国产精品韩国三级视频| 久久国产精品第一页| 国产综合色视频| 丁香婷婷深情五月亚洲| 99国产精品99久久久久久| 91成人免费网站| 91精品国产福利在线观看| 欧美精品久久一区二区三区| 日韩欧美国产一区二区三区| 久久综合国产精品| 中文字幕中文字幕一区二区| 日韩伦理av电影| 午夜精品久久久久久不卡8050| 蜜臀精品久久久久久蜜臀| 国产真实精品久久二三区| 丰满少妇在线播放bd日韩电影| 91丨porny丨国产入口| 欧美在线999| 2021中文字幕一区亚洲| 综合久久国产九一剧情麻豆| 亚洲国产欧美在线人成| 国产在线精品一区二区夜色 | 精品一区二区成人精品| 风流少妇一区二区| 欧美三级韩国三级日本一级| 欧美大白屁股肥臀xxxxxx| 国产婷婷色一区二区三区 | 91成人看片片| 久久在线免费观看| 亚洲精品视频在线| 麻豆精品在线看| 日本高清不卡一区| 久久亚区不卡日本| 天堂资源在线中文精品| 国产福利精品一区| 精品视频1区2区3区| 久久亚洲精品小早川怜子| 亚洲另类一区二区| 国产精品69毛片高清亚洲| 欧美精品成人一区二区三区四区| 国产精品丝袜在线| 日本视频在线一区| 在线观看一区日韩| 国产女人18毛片水真多成人如厕| 水蜜桃久久夜色精品一区的特点 | 久久精品久久99精品久久| 91啪九色porn原创视频在线观看| 欧美本精品男人aⅴ天堂| 亚洲综合男人的天堂| 国产成人免费视频一区| 欧美一级二级三级蜜桃| 亚洲精品国产无套在线观| 国产激情视频一区二区三区欧美| 欧美日韩午夜在线视频| 亚洲少妇中出一区| 成人avav影音| 国产精品天美传媒| 国产精品亚洲综合一区在线观看| 欧美一区二区三区视频免费| 亚洲欧美日韩在线| 成人免费高清在线观看| 欧美精品一区二区蜜臀亚洲| 日韩国产欧美在线观看| 欧美日韩一区不卡| 一区二区三区欧美视频| 99国产精品久久久久| 国产精品―色哟哟| 国产成人精品免费| 国产亚洲午夜高清国产拍精品| 激情久久五月天| 精品国产精品一区二区夜夜嗨| 免费欧美高清视频| 精品88久久久久88久久久| 久草精品在线观看| 久久久久久久一区| 国产成人免费视频网站| 国产精品福利影院|