35 #include <pds/pdsra.h> 36 #include <pds/pdsrv.h> 37 #include <pds/pdsnn.h> 40 #include "data_work.h" 42 int main(
int argc,
char** argv)
59 RV=pds_uniform_new(-1,1);
64 L->V[0]=32; L->V[1]=64; L->V[2]=42; L->V[3]=28; L->V[4]=14; L->V[5]=7;
67 X=pds_vector_new(L->V[0]);
69 Y=pds_vector_new(L->V[5]);
85 for(i=0;count<Ntraining;i++)
87 printf(
"\nEntrenamiento %4d\n",i);
90 function_data_work_init_data0(X,Y);
96 function_data_work_init_data1(X,Y);
100 if((IterN==0)&&(IterP==0)) count++;
105 fd=fopen(
"data.body.txt",
"w");
111 fd=fopen(
"data.body.txt",
"r");
119 for(i=0;i<Ntests;i++)
121 function_data_work_init_data1(X,Y);
124 function_octplot_vector_in_png(X,
"n",
"X[n]",
"octfilegood.m",
"xgood.png");
129 for(i=0;i<Ntests;i++)
131 function_data_work_init_data0(X,Y);
134 function_octplot_vector_in_png(X,
"n",
"X[n]",
"octfilebad.m",
"xbad.png");
147 pds_uniform_free(RV);
int pds_neuronml_enable_printf(PdsNeuronML *NeuronML)
Habilita la muestra en pantalla del avance del aprendizaje.
PdsNnBool pds_neuronml_iterate_results_printf(const PdsNeuronML *MLayer, const char *Type)
Muestra los resultados de la iteración de la red neuronal multicapa NeuronML.
int pds_neuronml_set_max_error(PdsNeuronML *NeuronML, PdsNnReal MaxError)
Coloca el maximo margen error RMS aceptado en la salida de la estructura PdsNeuronML.
int pds_neuronml_init_weight_uniform(PdsNeuronML *NeuronML, PdsUniform *RV)
Inicializa todos los pesos usando una variable aleatoria uniforme.
PdsNeuronML * pds_neuronml_new(const PdsVector *L)
Crea una estructura de tipo PdsNeuronML.
int pds_neuronml_set_alpha(PdsNeuronML *NeuronML, PdsNnReal Alpha)
Coloca el valor del factor de aprendizaje Alpha.
La estructura tipo PdsNeuronML . Esta estructura genera una red neuronal multi capa. Para usar incluir pds/pdsnn.h.
void pds_neuronml_free(PdsNeuronML *NeuronML)
Libera una neurona de tipo puntero PdsNeuronML.
int pds_neuronml_body_fscanf(PdsNeuronML *NeuronML, FILE *fd)
Lee de un archivo de texto los pesos W[i], el valor de U. Ocupando una linea cada uno...
int pds_neuronml_set_max_iterations(PdsNeuronML *NeuronML, PdsNnNatural MaxIter)
Coloca el máximo numero de iteraciones aceptado, cualquier valor mayor provoca que se detenga el algo...
unsigned int PdsNnNatural
int pds_neuronml_iterate(PdsNeuronML *NeuronML, const PdsVector *Input, PdsVector *Output)
Itera la red neuronal multicapa NeuronML. .
int pds_neuronml_body_fprintf(const PdsNeuronML *NeuronML, FILE *fd)
Guarda en un archivo de texto los pesos W[i], el valor de U. Ocupando una linea cada uno...
int pds_neuronml_training(PdsNeuronML *NeuronML, const PdsVector *Input, PdsVector *Output)
Entrena la red neuronal multicapa NeuronML. Usa el valor de Output como entrenamiento, para finalizar carga el nuevo valor de salida en Output.
int pds_neuronml_init_u_uniform(PdsNeuronML *NeuronML, PdsUniform *RV)
Inicializa todos los umbrales U usando una variable aleatoria uniforme.
PdsNnNatural pds_neuronml_training_results_printf(PdsNeuronML *MLayer, const char *Type)
Muestra los resultados del entrenamiento de la red neuronal multicapa NeuronML.