guif.m
来自「神经网络的工具箱, 神经网络的工具箱,」· M 代码 · 共 2,017 行 · 第 1/4 页
M
2,017 行
end%==================================================================% PARAMETERS_MUAXEDIT %% GUIF('pr_mumaxedit')%==================================================================elseif strcmp(cmd, 'pr_mumaxedit')new = str2num(get(gcbo, 'String'));if (new ~= gu('parameters.mumax')); au('parameters.mumax', new); au('parameters.next.enable', 'off'); graphics_snn('parameter_update');end%==================================================================% PARAMETERS_MUINCEDIT %% GUIF('pr_muindedit')%==================================================================elseif strcmp(cmd, 'pr_muincedit')new = str2num(get(gcbo, 'String'));if (new ~= gu('parameters.muinc')); au('parameters.muinc', new); au('parameters.next.enable', 'off'); graphics_snn('parameter_update');end%==================================================================% PARAMETERS_MUDECEDIT %% GUIF('pr_mudecedit')%==================================================================elseif strcmp(cmd, 'pr_mudecedit')new = str2num(get(gcbo, 'String'));if (new ~= gu('parameters.mudec')); au('parameters.mudec', new); au('parameters.next.enable', 'off'); graphics_snn('parameter_update');end%==================================================================% PARAMETERS_LREDIT %% GUIF('pr_lredit')%==================================================================elseif strcmp(cmd, 'pr_lredit')new = str2num(get(gcbo, 'String'));if (new ~= gu('parameters.lr')); au('parameters.lr', new); au('parameters.next.enable', 'off'); graphics_snn('parameter_update');end%==================================================================% PARAMETERS_TOLEDIT %% GUIF('pr_toledit')%==================================================================elseif strcmp(cmd, 'pr_toledit')new = str2num(get(gcbo, 'String'));if (new ~= gu('parameters.tol')); au('parameters.tol', new); au('parameters.next.enable', 'off'); graphics_snn('parameter_update');end%==================================================================% PARAMETERS_EPOCHEDIT %% GUIF('pr_epochedit')%==================================================================elseif strcmp(cmd, 'pr_epochedit')new = str2num(get(gcbo, 'String'));if (new ~= gu('parameters.epochs')); au('parameters.epochs', new); au('parameters.next.enable', 'off'); graphics_snn('parameter_update');end%==================================================================% PARAMETERS_SUCFAILEDIT %% GUIF('pr_sucfailedit')%==================================================================elseif strcmp(cmd, 'pr_sucfailedit')new = str2num(get(gcbo, 'String'));if (new ~= gu('parameters.sucfail')); au('parameters.sucfail', new); au('parameters.next.enable', 'off'); graphics_snn('parameter_update');end%==================================================================% PARAMETERS_TOTALFAILEDIT %% GUIF('pr_totalfailedit')%==================================================================elseif strcmp(cmd, 'pr_totalfailedit')new = str2num(get(gcbo, 'String'));if (new ~= gu('parameters.totfail')); au('parameters.totfail', new); au('parameters.next.enable', 'off'); graphics_snn('parameter_update');end%==================================================================% PARAMETERS_TIMEEDIT %% GUIF('pr_timeedit')%==================================================================elseif strcmp(cmd, 'pr_timeedit')new = str2num(get(gcbo, 'String'));if (new ~= gu('parameters.time')); au('parameters.time', new); au('parameters.next.enable', 'off'); graphics_snn('parameter_update');end%==================================================================% PARAMETERS_OK %% GUIF('pr_ok')%==================================================================elseif strcmp(cmd, 'pr_ok')au('parameters.next.enable', 'on');au('ensemble.ok.enable', 'off');au('ensemble.next.enable', 'off');graphics_snn('ensemble');%==================================================================% PARAMETERS_PREVIOUS %% GUIF('pr_previous')%==================================================================elseif strcmp(cmd, 'pr_previous')graphics_snn('architecture');%==================================================================% PARAMETERS_HELP %% GUIF('pr_help')%==================================================================elseif strcmp(cmd, 'pr_help')popup_message_snn('Sorry, no help available.');%==================================================================% PARAMETERS_NEXT %% GUIF('pr_next')%==================================================================elseif strcmp(cmd, 'pr_next')graphics_snn('ensemble');%==================================================================%==================================================================% ENSEMBLE_NENSEMBLEEDIT %% GUIF('ens_nensembleedit')%==================================================================elseif strcmp(cmd, 'ens_nensembleedit')new = str2num(get(gcbo, 'String'));if (new ~= gu('ensemble.nensemble')); au('ensemble.nensemble', new); au('ensemble.ok.enable', 'off'); au('ensemble.next.enable', 'off'); graphics_snn('ensemble_update');end%==================================================================% ENSEMBLE_SAMPLEPOP %% GUIF('ens_samplepop')%==================================================================elseif strcmp(cmd, 'ens_samplepop')new = get(gcbo, 'Value');if (new ~= gu('ensemble.samplevalue')) au('ensemble.samplevalue', new); au('ensemble.ok.enable', 'off'); au('ensemble.next.enable', 'off'); graphics_snn('ensemble_update');end%==================================================================% ENSEMBLE_START %% GUIF('ensemble_start')%==================================================================elseif strcmp(cmd, 'ens_start')parameters = gu('parameters');ensemble = gu('ensemble');inputs = str2num(gu('import.inputsedit.string'));outputs = str2num(gu('import.outputsedit.string'));nunits = gu('arch.nunits');s = [inputs nunits outputs];transferfunctions = gu('arch.transferfunctions');tf = transferfunctions(gu('arch.transfervalues'))';net = net_struct_snn(s, tf, parameters.algorithms{parameters.algvalue}); net.trainFcn.epochs = parameters.epochs; net.trainFcn.max_fail = parameters.totfail; net.trainFcn.max_suc_fail = parameters.sucfail; net.trainFcn.time = parameters.time; net.trainFcn.mu_max = parameters.mumax; net.trainFcn.mu_dec = parameters.mudec; net.trainFcn.mu_inc = parameters.muinc; net.trainFcn.tol = parameters.tol; net.trainFcn.lr = parameters.lr; if (parameters.errorweight == 1) net.costFcn.a = []; else net.costFcn.a = parameters.errorweight; end if (parameters.errorpop.values == parameters.errorpop.values(1)) net.costFcn.fn = ... parameters.errorfunctions{parameters.errorpop.values(1)}; else net.costFcn.fn = ... parameters.errorfunctions(parameters.errorpop.values); enddata = gu('data');au('net', net);%#function train_halfout_snn train_bootstrap_snnM = ensemble.nensemble;for m = 1:M stdout_snn('Training network %d/%d ...\n', m, M); [nets(m), trrecords(m), datasets(m)] = ... feval(ensemble.samplemethod{ensemble.samplevalue}, net, data);endstdout_snn('Training ensemble finished. Press ''Ok'' to contine.\n');au('nets', nets);au('trrecords', trrecords);au('datasets', datasets);au('ensemble.ok.enable', 'on');au('ensemble.next.enable', 'off');graphics_snn('ensemble_update');%==================================================================% ENSEMBLE_OK %% GUIF('ens_ok')%==================================================================elseif strcmp(cmd, 'ens_ok')nets = gu('nets');datasets = gu('datasets');M = size(nets, 2);[errors, exp_errors] = errors_snn(nets, datasets);au('remove.errors', errors);au('remove.exp_errors', exp_errors);au('remove.net_used', ones(1,M));au('ensemble.next.enable', 'on')graphics_snn('remove');%==================================================================% ENSEMBLE_PREVIOUS %% GUIF('ensemble_previous')%==================================================================elseif strcmp(cmd, 'ens_previous')graphics_snn('parameters');%==================================================================% ENSEMBLE_HELP %% GUIF('ens_help')%==================================================================elseif strcmp(cmd, 'ens_help')popup_message_snn('Sorry, no help available.');%==================================================================% ENSEMBLE_NEXT %% GUIF('ens_next')%==================================================================elseif strcmp(cmd, 'ens_next')graphics_snn('remove'); %==================================================================%==================================================================% REMOVE_MARK %% GUIF('rm_mark')%==================================================================elseif strcmp(cmd, 'rm_mark')net_used = gu('remove.net_used');m = get(gcbo, 'UserData');if (net_used(m)) net_used(m) = 0; au('remove.net_used', net_used); set(gcbo, 'Marker', 'o');else net_used(m) = 1; au('remove.net_used', net_used); set(gcbo, 'Marker', '+');endau('remove.next.enable', 'off');graphics_snn('remove_update');%==================================================================% REMOVE_COMPUTE %% GUIF('rm_compute')%==================================================================elseif strcmp(cmd, 'rm_compute')nets = gu('nets');datasets = gu('datasets');do_not_use = find(~gu('remove.net_used'));[dummy, exp_errors] = errors_snn(nets, datasets, do_not_use);au('remove.exp_errors', exp_errors);graphics_snn('remove');%==================================================================% REMOVE_OK %% GUIF('rm_ok')%==================================================================elseif strcmp(cmd, 'rm_ok')au('remove.next.enable', 'on');au('average.next.enable', 'off');au('average.ok.enable', 'off');graphics_snn('average');%==================================================================% REMOVE_PREVIOUS %% GUIF('rm_previous')%==================================================================elseif strcmp(cmd, 'rm_previous')graphics_snn('ensemble');%==================================================================% REMOVE_HELP %% GUIF('rm_help')%==================================================================elseif strcmp(cmd, 'rm_help')popup_message_snn('Sorry, no help available.');%==================================================================% REMOVE_NEXT %% GUIF('rm_next')%==================================================================elseif strcmp(cmd, 'rm_next')graphics_snn('average'); %==================================================================%==================================================================% AVERAGE_METHODPOP %% GUIF('av_methodpop')%==================================================================elseif strcmp(cmd, 'av_methodpop')new = get(gcbo, 'Value');if (new ~= gu('average.method')) au('average.method', new); au('average.ok.enable', 'off'); au('average.next.enable', 'off'); graphics_snn('average');end%==================================================================% AVERAGE_BOOTNEDIT %% GUIF('av_bootnedit')%==================================================================elseif strcmp(cmd, 'av_bootnedit')new = str2num(get(gcbo, 'String'));if (new ~= gu('average.bootn')) au('average.bootn', new); au('average.ok.enable', 'off'); au('average.next.enable', 'off'); graphics_snn('average_update');end%==================================================================% AVERAGE_CRANKEDIT %% GUIF('av_crankedit')%==================================================================elseif strcmp(cmd, 'av_crankedit')new = str2num(get(gcbo, 'String'));if (new ~= gu('average.cranks')) au('average.cranks', new); au('average.ok.enable', 'off'); au('average.next.enable', 'off'); graphics_snn('average_update');end%==================================================================% AVERAGE_START %% GUIF('av_start')%==================================================================elseif strcmp(cmd, 'av_start')stdout_snn('Averaging...');method = gu('average.method');if (method == 1) nets = gu('nets'); datasets = gu('datasets'); bootn = gu('average.bootn'); in_use = find(gu('remove.net_used')); au('average.over', in_use); alfa = balance_snn(nets(in_use), bootn, datasets); elseif (method == 2) in_use = find(gu('remove.net_used')); N = prod(size(in_use)); alfa = 1/N * ones(N, 1); au('average.over', in_use);elseif (method == 3) alfa = 1; in_use = find(gu('remove.net_used')); errval = gu('remove.errors.validation'); experrval = gu('remove.exp_errors.validation'); [dummy, i] = min( errval(in_use)./experrval(in_use) ); au('average.over', in_use(i)); else cranks = gu('average.cranks'); in_use = find(gu('remove.net_used')); if (cranks > prod(size(in_use))) cranks = prod(size(in_use)); end errval = gu('remove.errors.validation'); experrval = gu('remove.exp_errors.validation'); [dummy, i] = sort( errval(in_use)./experrval(in_use) ); au('average.over', in_use(i([1:cranks]))); alfa = 1/cranks * ones(cranks, 1);endau('alfa', alfa);au('average.ok.enable', 'on');stdout_snn('done\n');graphics_snn('average_update');%==================================================================% AVERAGE_OK %% GUIF('av_ok')%==================================================================elseif strcmp(cmd, 'av_ok')
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?