[01;34mwith[m Ada[31m.[mStrings[31m,[m Ada[31m.[mStrings[31m.[mFixed[31m;[m
[01;34muse[m Ada[31m.[mStrings[31m,[m Ada[31m.[mStrings[31m.[mFixed[31m;[m
[01;34mwith[m Pragmarc[31m.[mAnsi_Tty_Control[31m;[m
[01;34muse[m Pragmarc[31m.[mAnsi_Tty_Control[31m;[m

[01;34mwith[m PragmARC[31m.[mMath[31m.[mFunctions[31m;[m
[01;34mwith[m Ada[31m.[mText_Io[31m;[m
[01;34muse[m Ada[31m;[m
[01;34mpackage[m [01;34mbody[m Libsens[31m.[mNeural_Network [01;34mis[m
   
   
   [01;34mpackage[m Real_Io [01;34mis[m [01;34mnew[m Ada[31m.[mText_Io[31m.[m[01;30mFloat_Io[m[31m([mReal[31m);[m
   [01;34mpackage[m Real_Math [01;34mis[m [01;34mnew[m PragmARC[31m.[mMath[31m.[m[01;30mFunctions[m [31m([mSupplied_Real [31m=>[m Real[31m);[m
   
   
   [01;34mprocedure[m [01;30mTrain[m[31m([mFilename   [31m:[m [01;34min[m [32mString[m[31m;[m
		   Samples    [31m:[m [01;34min[m Samples_Type[31m;[m
		   Reuse      [31m:[m [01;34min[m [32mBoolean[m[31m;[m
		   Converged  [31m:[m [01;34min[m Real[31m;[m
		   Max_Epochs [31m:[m [01;34min[m Positive[31m)[m [01;34mis[m
      
      [01;34mprocedure[m [01;30mGet_Input[m [31m([mPattern [31m:[m [01;34min[m Positive[31m;[m
                           Input [31m:[m [01;34mout[m Node_Set[31m;[m
                           Desired [31m:[m [01;34mout[m Node_Set[31m)[m [01;34mis[m
	 
      [01;34mbegin[m

         Input [31m:=[m [01;30mSamples[m[31m([mPattern[31m*[m[35m2[m[31m-[m[35m1[m[31m);[m
         Desired [31m:=[m [01;30mSamples[m[31m([mPattern[31m*[m[35m2[m[31m);[m
      [01;34mend[m Get_Input[31m;[m
      
      
      [01;34mpackage[m Rem_NN_Train [01;34mis[m [01;34mnew[m [01;30mREM_NN[m[31m([mNum_Input_Nodes [31m=>[m Width[31m,[m
					 Num_Hidden_Nodes [31m=>[m hidden[31m,[m
					 Num_Output_Nodes [31m=>[m Width[31m,[m
					 New_Random_Weights [31m=>[m [01;34mnot[m reuse[31m,[m
					 Weight_File_Name [31m=>[m Filename[31m,[m
					 Input_To_Output_Connections [31m=>[m False[31m,[m
					 Num_Patterns [31m=>[m Samples'Length[31m/[m[35m2[m[31m,[m
					 Get_Input [31m=>[m Get_Input[31m);[m
      
      
      Response [31m:[m Rem_NN_Train[31m.[mOutput_Set [31m:=[m [31m([m[01;34mothers[m [31m=>[m [35m0.0[m[31m);[m      
      
      Banner [31m:[m [32mString[m[31m([m[35m1[m[31m..[m[35m80[m[31m)[m [31m:=[m [31m([m[01;34mothers[m [31m=>[m [32mCharacter[m'[01;30mVal[m[31m([m[35m32[m[31m));[m
      RMS_Error [31m:[m Real [31m:=[m [35m10.0[m[31m;[m

      Error     [31m:[m Real [31m:=[m [35m0.0[m[31m;[m
      Epoch [31m:[m Natural [31m:=[m [35m0[m[31m;[m
      
      [01;34mbegin[m         
         [01;34mloop[m
            [31m--Text_Io.Put_Line("passe par ici");[m
            Text_Io[31m.[m[01;30mPut[m [31m([mClear_Screen[31m);[m
            [01;30mMove[m[31m([m[31m"Welcome to "[m [31m&[m Filename [31m&[m [31m" Network Generator."[m [31m,[m Banner[31m,[m Ada[31m.[mStrings[31m.[mError[31m,[m Center[31m);[m
            Text_Io[31m.[m[01;30mPut_Line[m[31m([mBold_mode [31m&[m Banner [31m&[m Normal_mode[31m);[m
            
            Text_Io[31m.[mNew_Line[31m;[m

		 Text_Io[31m.[m[01;30mPut_Line[m[31m([m[31m"Training artificial neural network "[m [31m&[m [31m" length="[m [31m&[m [32mInteger[m[31m'Image(Samples'[mLength[31m/[m[35m2[m[31m));[m
            Text_Io[31m.[m[01;30mPut[m [31m([m[31m"Epoch"[m[31m);[m
            Text_Io[31m.[m[01;30mput[m [31m([m[32mInteger[m'[01;30mImage[m [31m([mEpoch[31m)[m [31m);[m
            Text_Io[31m.[m[01;30mPut[m[31m([m[31m" => RMS_Error: "[m[31m);[m

            Real_Io[31m.[m[01;30mPut[m[31m([mRMS_Error[31m);[m
            Text_Io[31m.[m[01;30mPut_line[m[31m([m[32mInteger[m'[01;30mImage[m[31m([m[32mInteger[m[31m((([mconverged[31m)/[mRMS_Error[31m)*[m[35m100.0[m[31m))[m [31m&[m
			       [31m'%'[m[31m);[m
	    [31m--Text_Io.Put_Line("passe par là");[m
            
            [01;34mif[m [32minteger[m[31m(((([m[35m80.0[m[31m/[mRMS_Error[31m)/[m[35m80.0[m[31m)/([m[35m0.1[m[31m/[mconverged[31m))*[m[35m8.0[m[31m)[m [31m>[m [35m0[m [01;34mthen[m
               Text_Io[31m.[m[01;30mPut[m[31m([mReverse_Video [31m&[m
                   [32mInteger[m[31m(((([m[35m80.0[m[31m/[mRMS_Error[31m)/[m[35m80.0[m[31m)/([m[35m0.1[m[31m/[mconverged[31m))*[m[35m8.0[m[31m)[m [31m*[m [31m' '[m [31m&[m
			     Normal_Mode[31m);[m
            [01;34mend[m [01;34mif[m[31m;[m

            RMS_Error [31m:=[m [35m0.0[m[31m;[m
        All_Patterns [31m:[m
            [01;34mfor[m Pattern [01;34min[m [35m1[m[31m..[mSamples'Length[31m/[m[35m2[m [01;34mLoop[m
               REM_NN_Train[31m.[mTrain[31m;[m
               REM_NN_Train[31m.[m[01;30mRespond[m [31m([mPattern[31m,[m Response[31m);[m
               [01;34mfor[m I [01;34min[m Response'[01;34mRange[m [01;34mloop[m
                  Error [31m:=[m Error [31m+[m [31m([m[01;30msamples[m[31m(([mPattern[31m*[m[35m2[m[31m)-[m[35m1[m[31m)([mi[31m)[m [31m-[m   [01;30mResponse[m[31m([mi[31m)[m [31m);[m
               [01;34mend[m [01;34mloop[m[31m;[m
               RMS_Error [31m:=[m RMS_Error [31m+[m [31m(([mError[31m/[m[01;30mReal[m[31m([mResponse'Length[31m))[m [31m**[m [35m2[m[31m);[m
               Error [31m:=[m [35m0.0[m[31m;[m
            [01;34mend[m [01;34mloop[m All_Patterns[31m;[m
            RMS_Error [31m:=[m Real_Math[31m.[m[01;30mSqrt[m[31m([mRMS_Error [31m/[m [01;30mReal[m [31m([mSamples'Length[31m/[m[35m2[m[31m))[m [31m;[m
            [01;34mif[m [31m([mRMS_Error [31m<=[m Converged[31m)[m [01;34mor[m
              [31m([mEpoch [31m>=[m Max_Epochs[31m)[m [01;34mthen[m
               [01;34mexit[m[31m;[m
            [01;34mend[m [01;34mif[m[31m;[m
	    [31m--Text_Io.Put_Line("passe enfin par là");[m
            Epoch [31m:=[m Epoch [31m+[m [35m1[m[31m;[m
         [01;34mend[m [01;34mloop[m[31m;[m
         REM_NN_train[31m.[mSave_Weights[31m;[m

      
      
      
      
      
   [01;34mend[m Train[31m;[m
   
   [01;34mfunction[m [01;30mRespond[m[31m([mFilename   [31m:[m [01;34min[m [32mString[m[31m;[m
		    Problem [31m:[m [01;34min[m Node_Set[31m)[m [01;34mreturn[m Node_Set [01;34mis[m
      
      
      [01;34mprocedure[m [01;30mGet_Input[m [31m([mPattern [31m:[m [01;34min[m Positive[31m;[m
                           Input [31m:[m [01;34mout[m Node_Set[31m;[m
                           Desired [31m:[m [01;34mout[m Node_Set[31m)[m [01;34mis[m
	 
      [01;34mbegin[m
	 
         Input [31m:=[m Problem[31m;[m
         Desired [31m:=[m [31m([m[01;34mothers[m [31m=>[m [35m0.0[m[31m);[m
      [01;34mend[m Get_Input[31m;[m
      
      
      [01;34mpackage[m Rem_NN_Expl [01;34mis[m [01;34mnew[m [01;30mREM_NN[m[31m([mNum_Input_Nodes [31m=>[m Width[31m,[m
					Num_Hidden_Nodes [31m=>[m hidden[31m,[m
					Num_Output_Nodes [31m=>[m Width[31m,[m
					New_Random_Weights [31m=>[m false[31m,[m
					Weight_File_Name [31m=>[m Filename[31m,[m
					Input_To_Output_Connections [31m=>[m False[31m,[m
					Num_Patterns [31m=>[m [35m1[m[31m,[m
					Get_Input [31m=>[m Get_Input[31m);[m
      
            
      Response [31m:[m Rem_NN_Expl[31m.[mOutput_Set [31m:=[m [31m([m[01;34mothers[m [31m=>[m [35m0.0[m[31m);[m      
      
      
   [01;34mbegin[m
      Rem_Nn_Expl[31m.[m[01;30mRespond[m[31m([m[35m1[m[31m,[m Response[31m);[m
      [01;34mreturn[m Response[31m;[m
   [01;34mend[m Respond[31m;[m
   
   
   
   
[01;34mend[m Libsens[31m.[mNeural_Network[31m;[m
