Home | Develop | Download | Contact
test_fcnn_training.cpp
1 #include <Pds/Ra>
2 #include <Pds/Nn>
3 
4 int main(void)
5 {
6  unsigned int M=2000;
7  unsigned int k;
8  Pds::Vector Acc(M);
9  std::string str;
10 
11  Pds::Matrix X(Pds::Ra::TextFormat,"../test/data_x_yinyang.txt");
12  Pds::Matrix Y(Pds::Ra::TextFormat,"../test/data_y_yinyang.txt");
13 
14  Pds::Matrix Xt(Pds::Ra::TextFormat,"../test/data_x_yinyang_test.txt");
15  Pds::Matrix Yt(Pds::Ra::TextFormat,"../test/data_y_yinyang_test.txt");
16 
17  Pds::Matrix Ys(Y.Size());
18 
19  Pds::Ra::Randomize();
20 
21  std::vector<unsigned int> N={2,512,64,8,1};
22  Pds::FCNn NN0=Pds::FCNn(N,Pds::Sigmoid,Pds::DSigmoid);
23 
24  Pds::Ra::Tic();
25  for(k=0;k<M;k++)
26  {
27  if(k%2==0) NN0.Training(X,Y,0.1,0.01);
28  else NN0.Training(Xt,Yt,0.1,0.01);
29 
30  NN0.Predict(Xt,Ys);
31 
32  Acc.Set(k,100.0*Pds::Accuracy(Ys.Geq(0.5),Yt));
33 
34  str="acc: "+std::to_string(Acc.At(k));
35  Pds::Ra::ProgressBarWithTime(32,k,M,false,str);
36 
37  }
38  std::cout<<std::endl;
39  Pds::Ra::Toc();
40 
41  Pds::Octave::XLabel="Iter";
42  Pds::Octave::YLabel="Accuracy";
43  Pds::Octave::Plot::CurveXY(Pds::LinSpace(0,M-1,M),Acc,"testando.m","test_fcnn_training_Acc.png");
44 
45  Pds::Octave::XLabel="x_1";
46  Pds::Octave::YLabel="x_2";
47  Pds::Octave::Plot::PointsX2DY(X ,Y ,"testando.m","test_fcnn_training_Y.png");
48  Pds::Octave::Plot::PointsX2DY(Xt,Ys,"testando.m","test_fcnn_training_Ys.png");
49 
50 
51  NN0.Save("../test/NeuralNetwork1.txt");
52  return 0;
53 }
La clase tipo Pds::FCNn . Esta clase genera un objeto con dos parametros Nlin y Ncol....
Definition: FCNn.hpp:62
const std::string FCNn
Tag de un objeto de tipo Pds::FCNn.
Definition: NnDefines.hpp:165
bool Training(const Pds::Matrix &X, const Pds::Matrix &Y, double alpha, double lambda)
Treina la NN como um bloque de datos entero X para encontrar una variacion de pesos.
Pds::SampleBlock Predict(const Pds::SampleBlock &In) const
Evalua la capa de la CNN.
bool Save(std::string filename)
Salva los datos en un archivo de texto.

Enlaces de interés

HomePage Bazaar Download Bug report Ayuda Developer Feed