コード例 #1
0
int main()
{     Network my;

      unsigned long inp=2;
      unsigned long hid=2;
      unsigned long outp=1;
      unsigned long layers[3];
      layers[0]=inp;
      layers[1]=hid;
      layers[2]=outp;
      int i=0,j=0;
      unsigned long iter=0;
      cout<<"Enter number of training Iterations : ";
      cin>>iter;
      my.SetData(0.1,layers,3);

      double input[]={1,0};
      double *outputs;
      my.RandomizeWB();

      double tr_inp[4][2]={{0.0,0.0},{1.0,0.0},{0.0,1.0},{1.0,1.0}};
      double tr_out[4][1]={{0.0},{1.0},{1.0},{0.0}};
      cout<<"\nStarting Training... ";
      std::chrono::time_point<std::chrono::system_clock> start, end;
      start = std::chrono::system_clock::now();
      for(i=0;i<iter;i++){
      //cout<<"\nTraining : "<<i+1;
	  
      for(j=0;j<4;j++){

      my.Train(tr_inp[j],tr_out[j]);

      }}
      end = std::chrono::system_clock::now();
      std::chrono::duration<double> elapsed_seconds = end-start;
	  std::time_t end_time = std::chrono::system_clock::to_time_t(end);
	   std::cout << "finished computation at " << std::ctime(&end_time)<< "elapsed time: " << elapsed_seconds.count() << "s\n";
      cout<<"\nEnding Training. ";
      cout<<"\n\nStarting Testing... \n";
      for(j=0;j<4;j++){
      cout<<"\n\nCase number : "<<j+1;
      my.SetInputs(tr_inp[j]);
      outputs=my.GetOutput();
      for(i=0;i<inp;i++){
      cout<<"\nInput"<<i+1<<" : "<<tr_inp[j][i];
      }
      for(i=0;i<outp;i++){
              cout<<"\nOutput"<<i+1<<" : "<<outputs[i];
      }
      delete outputs;
	  double *outputs;
      }

      cout<<"\n\nEnd Testing.\n\n";
      //cin.get();
      //system("PAUSE");
      return 0;
}