⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 train_rnn3.m

📁 这是个神经网络工具箱的一点MATALAB 程序
💻 M
字号:
%   File Name      : train_rnn3.m
%   Purpose        : Training the RNN
%   Author         : Hossam E. Mostafa Abdelbaki, School of Computer Science, 
%                    University of Centeral Florida (UCF). 
%   Release        : ver. 1.0.
%   Date           : October 1998.
%
%       RNNSIM is a software program available to the user without any 
%   license or royalty fees. Permission is hereby granted to use, copy, 
%   modify, and distribute this software for any purpose. The Author 
%   and UCF give no warranty, express, implied, or statuary for the 
%   software including, without limitation, waranty of merchantibility 
%   and warranty of fitness for a particular purpose. The software 
%   provided hereunder is on an "as is"  basis, and the Author and the 
%   UCF has no obligation to provide maintenance, support, updates, 
%   enhancements, or modifications. 
%
%       RNNSIM  is available for any platform (UNIX, PCWIN, MACHITOCH). 
%   It runs under MATLAB ver. 5.0 or highrer. 
%
%       User feedback, bugs, or software and manual suggestions can 
%   be sent via electronic mail to :   ahossam@cs.ucf.edu

%%%%%%%    train_rnn3.m  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
varnames = ['wplus' ' ' 'wminus' ' ' 'last_iter' ' ' 'last_elapsed_time' ' ' 'err' ' '];
varnames = [varnames 'r' ' ' 'MSEaveg'];

if(WTS_FLAG_OLD == 0 & WTS_FLAG_NEW == 1)
   Resume_Training = 1;
   start = 0;
   last_iter = 0; 
   last_elapsed_time = 0;
   
   set(StartIterationStTHndl,'String',num2str(start));
   set(StopIteration1StTHndl,'String',num2str(N_Iterations));
   
   set(StartMSEStTHndl,'String','None');
   set(StopMSE1StTHndl,'String',num2str(Mse_Threshold));
   
elseif(WTS_FLAG_OLD == 1 & WTS_FLAG_NEW == 0)
   Resume_Training = 1;
   if(Save_Weights == 1 )
      mess = sprintf('load %s %s',Weights_File_Name,varnames);      
      eval(mess);
   else
      mess = sprintf('load %s %s',Temp_Weights_File_Name,varnames);      
      eval(mess);
   end   
   start = last_iter ;
   
   set(StartIterationStTHndl,'String',num2str(start));
   set(StopIteration1StTHndl,'String',num2str(N_Iterations));
      
   set(StartMSEStTHndl,'String',num2str(MSEaveg));
   set(StopMSE1StTHndl,'String',num2str(Mse_Threshold));
  
   if(MSEaveg <= Mse_Threshold)
      Resume_Training = 0;
      OVER_TRAINED =1;
      break;
   end
end

iter = start + 1;
elapsed_time = last_elapsed_time;
N_Saving_Times = 0;
while(iter <= N_Iterations &  Resume_Training == 1)
   t0 = clock;   
   MSEaveg = 0.0;
   for k = 1:N_Train_Patterns    
      calc_rate;
      calc_output;      
      calc_mse;   
      update_wts; 
   end %k
   
   MSEaveg = MSEaveg/N_Train_Patterns;
   
   t1 = etime(clock,t0);
   elapsed_time = elapsed_time + t1;
   err(iter) = MSEaveg; 
   
     set(CurrentIterationStTHndl,'String',num2str(iter));
     set(CurrentMSEStTHndl,'String',num2str(MSEaveg));
     set(IterationTimeStTHndl,'String',num2str(t1));
     set(ElapsedTimeStTHndl,'String',num2str(elapsed_time));

   if (MSEaveg <= Mse_Threshold) 
      if(Save_Weights == 1 & strcmp(Weights_File_Name,Temp_Weights_File_Name) ~=1 )
         last_iter = iter;
         last_elapsed_time = elapsed_time;   
          mess = sprintf('save %s %s -append',Weights_File_Name,varnames);
          eval(mess);
         set(AutoSaveWeightsEdTHndl,'BackgroundColor',[0 1 0]);
         pause(1);
         set(AutoSaveWeightsEdTHndl,'BackgroundColor',[1 0 0]);
       else
         last_iter = iter;
         last_elapsed_time = elapsed_time;   
         mess = sprintf('save %s %s -append',Temp_Weights_File_Name,varnames);
         eval(mess);
      end     
        Resume_Training = 0;
        OVER_TRAINED = 1;
        break;
   end
   
   if(Save_Weights == 1);
    if(mod(iter,N_Saved_Iterations) == 0)
       last_iter = iter; 
       last_elapsed_time = elapsed_time;   
       mess = sprintf('save %s %s -append',Weights_File_Name,varnames);
       eval(mess);
         N_Saving_Times = N_Saving_Times + 1;
              if(mod(N_Saving_Times,2) == 0) 
                 set(AutoSaveWeightsEdTHndl,'BackgroundColor',[0 1 0]);
              else
                 set(AutoSaveWeightsEdTHndl,'BackgroundColor',[1 0 0]);
              end
           end
   end  
   pause(.1);
   if(STOP_FLAG ==1)
      if(Save_Weights == 1)
         last_iter = iter;
         last_elapsed_time = elapsed_time;   
          mess = sprintf('save %s %s -append',Weights_File_Name,varnames);
          eval(mess);
         set(AutoSaveWeightsEdTHndl,'BackgroundColor',[0 1 0]);
         pause(1);
         set(AutoSaveWeightsEdTHndl,'BackgroundColor',[1 0 0]);
          break;
       else
         last_iter = iter;
         last_elapsed_time = elapsed_time;   
         mess = sprintf('save %s %s -append',Temp_Weights_File_Name,varnames);         
         eval(mess);
      break;   
      end
   end
   
   last_iter = iter; 
   last_elapsed_time = elapsed_time;   
   iter = iter + 1;   
   
end %while  
if(iter >= N_Iterations-1)
   OVER_TRAINED = 1;
         if(Save_Weights == 1);
            Resume_Training = 0;
            last_elapsed_time = elapsed_time;   
            mess = sprintf('save %s %s -append',Weights_File_Name,varnames,varnames);            
            eval(mess);
            set(AutoSaveWeightsEdTHndl,'BackgroundColor',[0 1 0]);
            pause(1);
            set(AutoSaveWeightsEdTHndl,'BackgroundColor',[1 0 0]);
         else
            last_elapsed_time = elapsed_time;   
           mess = sprintf('save %s %s -append',Temp_Weights_File_Name,varnames);             
            eval(mess);
         end
end
figure(RnnFigHndl); 
excute stop;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -