42 #include <pds/pdssn.h> 64 int main(
int argc,
char** argv)
78 if( (Input==NULL)||(Neuron==NULL) )
return EXIT_SUCCESS;
87 Out1=load_input_and_iterate_neuron(Input,X1,4,Neuron);
88 Out0=load_input_and_iterate_neuron(Input,X0,4,Neuron);
89 printf(
"Iterando %d:\tY0=%7.3f\tY1=%7.3f\n",i,Out0,Out1);
94 load_input_and_iterate_neuron(Input,X0,4,Neuron);
95 evaluate_error_and_update_weight(Neuron,-1.0,Alpha);
97 load_input_and_iterate_neuron(Input,X1,4,Neuron);
98 evaluate_error_and_update_weight(Neuron,+1.0,Alpha);
101 Out1=load_input_and_iterate_neuron(Input,X1,4,Neuron);
102 Out0=load_input_and_iterate_neuron(Input,X0,4,Neuron);
103 printf(
"Iterando %d:\tY0=%7.3f\tY1=%7.3f\n",i,Out0,Out1);
int pds_neuron_connect_input_with_nivector(PdsNeuron *Neuron, const PdsNIVector *NIVector)
Conecta el valor de salida Y de las neuronas NIVector con la entrada X[id] de la neurona Neuron...
int pds_nivector_set_input_from_array(PdsNIVector *NIVector, const PdsSnReal *X, int Nel)
Escribe el valor de la entrada de las Neuronas.
int pds_neuron_update_u_and_weight(PdsNeuron *Neuron, PdsSnReal Alpha)
Actualiza los pesos W[i] de la neurona (using the Delta rule). "e" es el error de la salida de la ...
int pds_neuron_printf_u_and_weight(const PdsNeuron *Neuron)
Imprime los valores de U y los pesos en la Neurona.
int pds_neuron_init_u_and_weight_rand(PdsNeuron *Neuron, PdsSnReal min, PdsSnReal max)
Inicia el vector de pesos y U de la Neurona con valores aleatorios uniformemente distribuido entre mi...
int pds_neuron_get_output(const PdsNeuron *Neuron, PdsSnReal *m)
Devuelve el valor de la salida Y de la Neurona.
void pds_neuron_destroy(PdsNeuron **Neuron)
Libera una neurona de tipo puntero PdsNeuron, y limpia el puntero con NULL.
int pds_neuron_iterate(PdsNeuron *Neuron)
Itera la Neurona Neuron. Adicionalmente (Neuron->Y[1]=0) .
void pds_nivector_destroy(PdsNIVector **NIVector)
Libera un vector de neuronas de tipo puntero PdsNIVector, y limpia el puntero con NULL...
int pds_neuron_evaluate_diff_error(PdsNeuron *Neuron, PdsSnReal y)
Compara el valor de salida de la neurona, con "y", luego lo carga en la variable Y[1] de la neurona ...
La estructura tipo PdsNIVector . Esta estructura genera un arreglo de neuronas. Para usar incluir pds...
La estructura tipo PdsNeuron . Esta estructura genera una neurona de Nel entradas.
PdsNIVector * pds_nivector_new(PdsSnNatural Nel)
Crea un vector de neuronas de entrada de tipo PdsNIVector e inicia con cero todos los valores...
unsigned int PdsSnNatural
PdsNeuron * pds_neuron_new(PdsSnNatural Nel)
Crea una neurona de tipo PdsNeuron de Nel entradas.