33 #include <pds/pdssn.h> 35 int main(
int argc,
char** argv)
45 if(Neuron==NULL) printf(
"ERROR: La neurona no ha podido crearse.\n");
62 printf(
"Try <<%3d>>\n",i);
63 printf(
"X{:}=\n%f\t%f\t%f\t%f\n",*(Neuron->
X[0]),*(Neuron->
X[1]),*(Neuron->
X[2]),*(Neuron->
X[3]));
64 printf(
"W{:}=\n%f\t%f\t%f\t%f\n",Neuron->
W[0],Neuron->
W[1],Neuron->
W[2],Neuron->
W[3]);
72 printf(
"e=%f\n\n",Neuron->
Y[1]);
89 if(Neuron==NULL) printf(
"\nLa neurona Neuron ha sido liberado y limpiada.\n");
int pds_neuron_init_weight_rand(PdsNeuron *Neuron, PdsSnReal min, PdsSnReal max)
Inicia el vector de pesos de la Neurona con valores aleatorios uniformemente distribuido entre min y ...
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) .
int pds_neuron_connect_input_with_ninput(PdsNeuron *Neuron, PdsSnNatural id, PdsNInput *NInput)
Conecta el valor de salida Y de la neurona de entrada NInput con la entrada X[id] de la neurona Neuro...
int pds_neuron_update_u_and_weight_normalized(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_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 PdsNeuron . Esta estructura genera una neurona de Nel entradas.
PdsNeuron * pds_neuron_new(PdsSnNatural Nel)
Crea una neurona de tipo PdsNeuron de Nel entradas.