www.gusucode.com > nnet 工具箱 matlab 源码程序 > nnet/+nnet/+train/CommandLineFeedback.m
classdef CommandLineFeedback < nnet.train.FeedbackHandler % Copyright 2007-2014 The MathWorks, Inc. methods function enable = enableImpl(this,useSPMD,data,net,tr,options,status) enable = net.trainParam.showCommandLine && ~isnan(net.trainParam.show); end function startImpl(this,useSPMD,data,net,tr,options,status) if ~isempty(options) && isfield(options,'calcSummary') calcSummary = options.calcSummary; else calcSummary = 'MATLAB'; end disp(['Calculation mode: ' calcSummary]) disp(' ') disp(['Training ' net.name ' with ' upper(net.trainFcn) '.']); end function stopSPMD = updateInsideSPMDImpl(this,net,tr,options,data,calcLib,calcNet,bestNet,status,statusValues) doStart = (tr.num_epochs == 0); doStop = ~isempty(tr.stop); doIntemediate = (rem(tr.num_epochs,net.trainParam.show)==0); if doStart || doStop || doIntemediate disp(status_line(status,statusValues)) end if doStop disp(['Training with ' upper(net.trainFcn) ' completed: ' tr.stop]) disp(' '); end stopSPMD = false; end end end function str = status_line(status,statusValues) numStatus = length(status); s = cell(1,numStatus*2-1); for i=1:length(status) s{i*2-1} = train_status_str(status(i),statusValues(i)); if (i < numStatus) s{i*2} = ', '; end end str = [s{:}]; end function str = train_status_str(status,value) if ~isfinite(status.max) str = [status.name ' ' num2str(value)]; else str = [status.name ' ' num2str(value) '/' num2str(status.max)]; end end