📄 train_rnn3.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 + -