33 #ifndef __PDSNEURON_H__ 34 #define __PDSNEURON_H__ 42 #include <pds/pdsninput.h> 43 #include <pds/pdsnivector.h> 44 #include <pds/pdssnglobal.h> 95 double (*func)(double);
98 double (*dfunc)(double);
int pds_neuron_backpropagate_error(PdsNeuron *Neuron, PdsSnReal Alpha)
Propaga el error de la salida de la neurona hacia las neuronas conectadas a sus entradas. .
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_neuron_get_xtx(PdsNeuron *Neuron, PdsSnReal *XtX)
Devuelve la suma cuadrática de los valores de entrada de la neurona. .
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_set_weight(PdsNeuron *Neuron, PdsSnNatural x, PdsSnReal m)
Escribe el valor m en la posición (x) del vector de pesos de la Neurona. (x) inicia con (0)...
int pds_neuron_get_number_of_inputs(const PdsNeuron *Neuron, PdsSnNatural *Nelements)
Devuelve el número de entradas de la Neurona.
int pds_neuron_fscanf(PdsNeuron *Neuron, FILE *fd)
Lee de un archivo de texto los pesos {W[i]} y {U}. Ocupando una linea cada uno, y separando los eleme...
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_init_weight(PdsNeuron *Neuron, PdsSnReal m)
Inicia el vector de pesos de la Neurona.
const PdsSnReal * pds_neuron_get_dendrite(const PdsNeuron *Neuron, PdsSnNatural id)
Devuelve la dirección de la entrada X[id] de la Neurona.
int pds_neuron_printf_u_and_weight(const PdsNeuron *Neuron)
Imprime los valores de U y los pesos en la Neurona.
int pds_neuron_evaluate_theta(PdsNeuron *Neuron)
Evalua la variable theta de la Neurona Neuron. .
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_fwrite(const PdsNeuron *Neuron, FILE *fd)
Guarda en un archivo binario los pesos W[i], el valor de U.
int pds_neuron_fprintf(const PdsNeuron *Neuron, FILE *fd)
Guarda en un archivo de texto los pesos {W[i]} y {U}. Ocupando una linea cada uno, y separando los elementos por un TAB.
int pds_neuron_printf_weight(const PdsNeuron *Neuron)
Imprime los valores de los pesos en la Neurona.
int pds_neuron_get_output(const PdsNeuron *Neuron, PdsSnReal *m)
Devuelve el valor de la salida Y de la Neurona.
int pds_neuron_evaluate_func(PdsNeuron *Neuron)
Actualiza el valor a la salida de la Neurona Neuron. Adicionalmente (Neuron->Y[1]=0) ...
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_get_input(const PdsNeuron *Neuron, PdsSnNatural id, PdsSnReal *m)
Devuelve el valor de la entrada X[id] de la Neurona.
int pds_neuron_connect_input(PdsNeuron *Neuron, PdsSnNatural id, PdsNeuron *NeuronX)
Conecta el valor de salida Y de la Neurona NeuronX con la entrada X[id] de la neurona Neuron...
int pds_neuron_get_weight(const PdsNeuron *Neuron, PdsSnNatural x, PdsSnReal *m)
Devuelve el valor en la posición (x) del vector de pesos de la Neurona. (x) inicia con (0)...
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.
void pds_neuron_free(PdsNeuron *Neuron)
Libera una neurona de tipo puntero PdsNeuron.
const PdsSnReal * pds_neuron_get_axon(const PdsNeuron *Neuron)
Devuelve la dirección del axon (salida) de la Neurona.
int pds_neuron_get_u(const PdsNeuron *Neuron, PdsSnReal *U)
Devuelve el valor de U de la Neurona.
int pds_neuron_fread(PdsNeuron *Neuron, FILE *fd)
Lee de un archivo binario los pesos W[i], el valor de U.
int pds_neuron_update_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 n...
int pds_neuron_set_u(PdsNeuron *Neuron, PdsSnReal U)
Coloca el valor de U de la Neurona.
PdsNeuron * pds_neuron_new_with_params(PdsSnNatural Nel, PdsSnReal W, PdsSnReal U, double(*func)(double), double(*dfunc)(double))
Crea una neurona de tipo PdsNeuron de Nel entradas.
unsigned int PdsSnNatural
PdsNeuron * pds_neuron_new(PdsSnNatural Nel)
Crea una neurona de tipo PdsNeuron de Nel entradas.