Funciones que trabajan con redes neuronales multi capas.
Más...
|
Funciones para leer y escribir datos de {Pesos, U} de todas las neuronas.
|
int | pds_neuronml_head_printf (const PdsNeuronML *NeuronML) |
| Mostra em pantalla los datos de cabecera de la red neuronal multicapa. Más...
|
|
int | pds_neuronml_head_fprintf (const PdsNeuronML *NeuronML, FILE *fd) |
| Escribe los datos de cabecera de la red neuronal. En una linea separando los elementos por un TAB. {NeuronML->N,NeuronML->MaxError,NeuronML->Alpha,NeuronML->MaxIter,NeuronML->Iter,NeuronML->ShowPrintf} En la siguiente linea separando los elementos por un TAB, el numero de neuronas por capa. Más...
|
|
PdsNeuronML * | pds_neuronml_new_head_fscanf (FILE *fd) |
| Lee los datos de cabecera de una red neuronal desde un archivo. Más...
|
|
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, y separando los elementos por un TAB. (neurona por neurona) Más...
|
|
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, y separando los elementos por un TAB. (neurona por neurona) Más...
|
|
int | pds_neuronml_body_fwrite (const PdsNeuronML *NeuronML, FILE *fd) |
| Guarda en un archivo binario los pesos W[i], el valor de U. (neurona por neurona) Más...
|
|
int | pds_neuronml_body_fread (PdsNeuronML *NeuronML, FILE *fd) |
| Lee de un archivo binario los pesos W[i], el valor de U. (neurona por neurona) Más...
|
|
Funciones que trabajan con redes neuronales multi capas.
Estas funciones trabajan con redes neuronales multi capas de la forma.
Red neuronal multi capa.
◆ pds_neuronml_new()
Crea una estructura de tipo PdsNeuronML.
-
Inicia con cero todos los Pesos.
-
El máximo margen de error RMS aceptado en la salida de la estructura PdsNeuronML es PDS_DEFAULT_MAX_RMS_ERROR.
-
El valor de de Alpha se inicia con PDS_DEFAULT_ALPHA.
-
El valor U y W son iniciados aleatoriamente entre -1.0 1.0.
-
El valor func(x) se inicia con tanh(x/2).
- Parámetros
-
[in] | L | Es un vector con el numero de elementos por capas. |
- Devuelve
- Un puntero al vector de tipo PdsNeuronML.
◆ pds_neuronml_new_from_array()
Crea una estructura de tipo PdsNeuronML.
-
Inicia con cero todos los Pesos.
-
El máximo margen de error RMS aceptado en la salida de la estructura PdsNeuronML es PDS_DEFAULT_MAX_RMS_ERROR.
-
El valor de de Alpha se inicia con PDS_DEFAULT_ALPHA.
-
El valor U y W son iniciados aleatoriamente entre -1.0 1.0.
-
El valor func(x) se inicia con tanh(x/2).
- Parámetros
-
[in] | L | Es un arreglo con el numero de elementos por capas. |
[in] | Nel | Número de elementos del arreglo. |
- Devuelve
- Un puntero al vector de tipo PdsNeuronML.
- Ejemplos:
- example_training_save.c.
◆ pds_neuronml_new_load_data()
PdsNeuronML * pds_neuronml_new_load_data |
( |
const char * |
mlayer_filename | ) |
|
Crea una estructura de tipo PdsNeuronML e inicia todos los elementos. desde un archivo de texto.
Los datos cargados son :
-
N, el numero de capas.
-
MaxError, El máximo margen de error RMS aceptado en la salida.
-
Alpha, El factor de aprendizaje.
-
MaxIter, El máximo número de iteraciones.
-
Iter, El número de iteraciones del último entrenamiento.
-
ShowPrintf, Si la estructura muestra información adicional.
-
L, Vector de N+1 elementos con el número de neuronas por capa.
-
Vector de pesos de neurona.
-
...
- Parámetros
-
[in] | mlayer_filename | Es el archivo de texto de donde se leen los datos. |
- Devuelve
- Un puntero al vector de tipo PdsNeuronML.
- Ejemplos:
- example_load_test.c y example_load_training_save_test.c.
◆ pds_neuronml_save_data()
int pds_neuronml_save_data |
( |
const PdsNeuronML * |
NeuronML, |
|
|
const char * |
mlayer_filename |
|
) |
| |
Salva una estructura de tipo PdsNeuronML en un archivo de texto.
Los datos salvados son :
-
N, el numero de capas.
-
MaxError, El máximo margen de error RMS aceptado en la salida.
-
Alpha, El factor de aprendizaje.
-
MaxIter, El máximo número de iteraciones.
-
Iter, El número de iteraciones del último entrenamiento.
-
ShowPrintf, Si la estructura muestra información adicional.
-
L, Vector de N+1 elementos con el número de neuronas por capa.
-
Vector de pesos de neurona.
-
...
- Parámetros
-
[in] | NeuronML | Es la red neuronal multicapa a salvar. |
[in] | mlayer_filename | Es el archivo de texto donde se guardará la red. |
- Devuelve
- TRUE si todo fue bien o FALSE si no. (ejem: NeuronML==NULL o mlayer_filename=NULL).
- Ejemplos:
- example_load_training_save_test.c y example_training_save.c.
◆ pds_neuronml_set_max_error()
Coloca el maximo margen error RMS aceptado en la salida de la estructura PdsNeuronML.
Cualquier valor de error que es menor provoca que se detenga el algoritmo de aprendizaje.
- Parámetros
-
[in,out] | NeuronML | Red neuronal Multi capa a trabajar. |
[in] | MaxError | Máximo error aceptado. El valor cero no es aceptado, en su defecto es escrito PDS_DEFAULT_MAX_RMS_ERROR. Valores negativos no son aceptados, en su defecto es escrito |MaxError|. |
- Devuelve
- TRUE si todo fue bien o FALSE si no (ej: NeuronML==NULL).
- Ejemplos:
- example_training_save.c.
◆ pds_neuronml_set_max_iterations()
Coloca el máximo numero de iteraciones aceptado, cualquier valor mayor provoca que se detenga el algoritmo de aprendizaje pds_neuronml_training(). si este número es cero entonces el algoritmo continua hasta que el error en la salida sea menor que NeuronML->Error.
- Parámetros
-
[in,out] | NeuronML | Red neuronal Multi capa a trabajar. |
[in] | MaxIter | Número máximo de iteraciones. |
- Devuelve
- TRUE si todo fue bien o FALSE si no (ej: NeuronML==NULL).
- Ejemplos:
- example_training_save.c.
◆ pds_neuronml_enable_printf()
int pds_neuronml_enable_printf |
( |
PdsNeuronML * |
NeuronML | ) |
|
Habilita la muestra en pantalla del avance del aprendizaje.
- Parámetros
-
[in,out] | NeuronML | Red neuronal Multi capa a trabajar. |
- Devuelve
- TRUE si todo fue bien o FALSE si no (ej: NeuronML==NULL).
◆ pds_neuronml_get_number_of_input_neurons()
Retorna o numero de neuronas de entrada.
- Parámetros
-
[in] | NeuronML | Red neuronal Multi capa a cosultar. |
[out] | Number | Número de neuronas de entrada. |
- Devuelve
- TRUE si todo fue bien o FALSE si no (ej: NeuronML==NULL).
- Ejemplos:
- example_load_test.c y example_load_training_save_test.c.
◆ pds_neuronml_get_number_of_output_neurons()
Retorna o numero de neuronas de salida.
- Parámetros
-
[in] | NeuronML | Red neuronal Multi capa a cosultar. |
[out] | Number | Número de neuronas de salida. |
- Devuelve
- TRUE si todo fue bien o FALSE si no (ej: NeuronML==NULL).
- Ejemplos:
- example_load_test.c y example_load_training_save_test.c.
◆ pds_neuronml_get_maximum_output()
Retorna o valor maximo de las neuronas de salida.
- Parámetros
-
[in] | NeuronML | Red neuronal Multi capa a cosultar. |
[out] | Max | Valor máximo de las neuronas de salida. |
- Devuelve
- TRUE si todo fue bien o FALSE si no (ej: NeuronML==NULL).
◆ pds_neuronml_get_minimum_output()
Retorna o valor maximo de las neuronas de salida.
- Parámetros
-
[in] | NeuronML | Red neuronal Multi capa a cosultar. |
[out] | Min | Valor mínimo de las neuronas de salida. |
- Devuelve
- TRUE si todo fue bien o FALSE si no (ej: NeuronML==NULL).
◆ pds_neuronml_init_weight_uniform()
int pds_neuronml_init_weight_uniform |
( |
PdsNeuronML * |
NeuronML, |
|
|
PdsUniform * |
RV |
|
) |
| |
Inicializa todos los pesos usando una variable aleatoria uniforme.
- Parámetros
-
[in,out] | NeuronML | Red neuronal Multi capa a trabajar. |
[in] | RV | Variable aleatoria uniforme. |
- Devuelve
- TRUE si todo fue bien o FALSE si no (ej: NeuronML==NULL, RV==NULL).
◆ pds_neuronml_init_weight_rand()
int pds_neuronml_init_weight_rand |
( |
PdsNeuronML * |
NeuronML, |
|
|
PdsSnReal |
min, |
|
|
PdsSnReal |
max |
|
) |
| |
Inicializa todos los pesos entre los valores min y max, usando internamente la funcion rand.
- Parámetros
-
[in,out] | NeuronML | Red neuronal Multi capa a trabajar. |
[in] | min | Valor mínimo. |
[in] | max | Valor máximo. |
- Devuelve
- TRUE si todo fue bien o FALSE si no (ej: NeuronML==NULL).
◆ pds_neuronml_init_u_uniform()
int pds_neuronml_init_u_uniform |
( |
PdsNeuronML * |
NeuronML, |
|
|
PdsUniform * |
RV |
|
) |
| |
Inicializa todos los umbrales U usando una variable aleatoria uniforme.
- Parámetros
-
[in,out] | NeuronML | Red neuronal Multi capa a trabajar. |
[in] | RV | Variable aleatoria uniforme. |
- Devuelve
- TRUE si todo fue bien o FALSE si no (ej: NeuronML==NULL, RV==NULL).
◆ pds_neuronml_init_u_rand()
int pds_neuronml_init_u_rand |
( |
PdsNeuronML * |
NeuronML, |
|
|
PdsSnReal |
min, |
|
|
PdsSnReal |
max |
|
) |
| |
Inicializa todos los umbrales U de forma aleatoria entre min y max.
- Parámetros
-
[in,out] | NeuronML | Red neuronal Multi capa a trabajar. |
[in] | min | Valor mínimo. |
[in] | max | Valor máximo. |
- Devuelve
- TRUE si todo fue bien o FALSE si no (ej: NeuronML==NULL).
◆ pds_neuronml_iterate()
int pds_neuronml_iterate |
( |
PdsNeuronML * |
NeuronML, |
|
|
const PdsVector * |
Input, |
|
|
PdsVector * |
Output |
|
) |
| |
Itera la red neuronal multicapa NeuronML.
.
- Parámetros
-
[in,out] | NeuronML | Red neuronal Multi capa a trabajar. |
[in] | Input | Datos de entrada de la red neuronal multicapa. |
[out] | Output | Datos de salida de la red neuronal multicapa. |
- Devuelve
- TRUE si todo fue bien o FALSE si no (ej: NeuronML==NULL, o tamaños de vectores incompatibles).
- Ejemplos:
- example_load_test.c y example_load_training_save_test.c.
◆ pds_neuronml_get_number_iterations()
Devuelve el número de iteraciones del último entrenamiento hecho con la función pds_neuronml_training().
- Parámetros
-
[in,out] | NeuronML | Red neuronal Multi capa a trabajar. |
[in] | Iter | Número de iteraciones del último entrenamiento. |
- Devuelve
- TRUE si todo fue bien o FALSE si no (ej: NeuronML==NULL).
◆ pds_neuronml_iterate_results_printf()
Muestra los resultados de la iteración de la red neuronal multicapa NeuronML.
- Parámetros
-
[in] | MLayer | Red neuronal Multi capa a trabajar. |
[in] | Type | Etiqueda da iteracion. |
- Devuelve
- El valor medio de las salidas de la red neuronal multicapa NeuronML.
- Ejemplos:
- example_load_test.c y example_load_training_save_test.c.
◆ pds_neuronml_get_output()
int pds_neuronml_get_output |
( |
const PdsNeuronML * |
NeuronML, |
|
|
PdsVector * |
Y |
|
) |
| |
Devuelve la salida Y de la red neuronal.
- Parámetros
-
[in] | NeuronML | Red neuronal Multi capa a trabajar. |
[out] | Y | Vector donde se cargará los valores de la salida Y. |
- Devuelve
- TRUE si todo fue bien o FALSE si no (ej: NeuronML==NULL o Y==NULL).
◆ pds_neuronml_get_output_soft_vote()
Evalúa una votación con desición suave de los valores de salida de la red neuronal multicapa.
Se realiza una suma simple de todos los valores de salida.
- Parámetros
-
[in] | NeuronML | Red neuronal Multi capa a trabajar. |
[out] | Vote | Valor de la votación suave. |
- Devuelve
- TRUE si todo fue bien o FALSE si no (ej: NVector==NULL).
◆ pds_neuronml_get_output_rms_error()
Evalúa el error cuadrático medio de todos los errores Y[1] de las neuronas de salida de la red neuronal.
- Parámetros
-
[in] | NeuronML | Red neuronal Multi capa a trabajar. |
[in] | RmsError | Valor raíz cuadrático medio. |
- Devuelve
- TRUE si todo fue bien o FALSE si no (ej: NeuronML==NULL).
◆ pds_neuronml_training()
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.
Bucle de retropropagación e iteración :
El bucle es repetido hasta que el error cuadratico medio en la salida sea menor NeuronML->MaxError o que el numero de iteraciones sea mayor que NeuronML->MaxIter (Solo si NeuronML->MaxIter es diferente de cero).
- Parámetros
-
[in,out] | NeuronML | Red neuronal Multi capa a trabajar. |
[in] | Input | Datos de entrada de la red neuronal multicapa. |
[in,out] | Output | Datos esperados de salida de la red neuronal multicapa. |
- Devuelve
- TRUE si todo fue bien o FALSE si no (ej: NeuronML==NULL, o tamaños de vectores incompatibles).
- Ejemplos:
- example_load_training_save_test.c y example_training_save.c.
◆ pds_neuronml_training_results_printf()
Muestra los resultados del entrenamiento de la red neuronal multicapa NeuronML.
- Parámetros
-
[in] | MLayer | Red neuronal Multi capa a trabajar. |
[in] | Type | Etiqueda del entrenamiento. |
- Devuelve
- El valor medio de las salidas de la red neuronal multicapa NeuronML.
- Ejemplos:
- example_load_training_save_test.c y example_training_save.c.
◆ pds_neuronml_set_alpha()
Coloca el valor del factor de aprendizaje Alpha.
- Parámetros
-
[in,out] | NeuronML | Red neuronal Multi capa a trabajar. |
[in] | Alpha | Factor de aprendizaje. |
- Devuelve
- TRUE si todo fue bien o FALSE si no (ej: NeuronML==NULL).
- Ejemplos:
- example_training_save.c.
◆ pds_neuronml_head_printf()
int pds_neuronml_head_printf |
( |
const PdsNeuronML * |
NeuronML | ) |
|
◆ pds_neuronml_head_fprintf()
int pds_neuronml_head_fprintf |
( |
const PdsNeuronML * |
NeuronML, |
|
|
FILE * |
fd |
|
) |
| |
Escribe los datos de cabecera de la red neuronal. En una linea separando los elementos por un TAB. {NeuronML->N,NeuronML->MaxError,NeuronML->Alpha,NeuronML->MaxIter,NeuronML->Iter,NeuronML->ShowPrintf} En la siguiente linea separando los elementos por un TAB, el numero de neuronas por capa.
- Parámetros
-
[in] | NeuronML | La estructura multicapa a leer. |
[in,out] | fd | Manejador del fichero a escribir. |
- Devuelve
- TRUE si todo fue bien o FALSE si no (ej: NeuronML==NULL o fd==NULL).
◆ pds_neuronml_new_head_fscanf()
PdsNeuronML * pds_neuronml_new_head_fscanf |
( |
FILE * |
fd | ) |
|
Lee los datos de cabecera de una red neuronal desde un archivo.
- Parámetros
-
[in,out] | fd | Manejador del fichero a escribir. |
- Devuelve
- Un puntero al vector de tipo PdsNeuronML o NULL en caso de error.
◆ pds_neuronml_body_fprintf()
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, y separando los elementos por un TAB. (neurona por neurona)
- Parámetros
-
[in] | NeuronML | La estructura multicapa a leer. |
[in,out] | fd | Manejador del fichero a escribir. |
- Devuelve
- TRUE si todo fue bien o FALSE si no (ej: NeuronML==NULL o fd==NULL).
◆ pds_neuronml_body_fscanf()
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, y separando los elementos por un TAB. (neurona por neurona)
- Parámetros
-
[out] | NeuronML | La estructura multicapa a escribir. |
[in,out] | fd | Manejador del fichero a escribir. |
- Devuelve
- TRUE si todo fue bien o FALSE si no (ej: NeuronML==NULL o fd==NULL).
◆ pds_neuronml_body_fwrite()
int pds_neuronml_body_fwrite |
( |
const PdsNeuronML * |
NeuronML, |
|
|
FILE * |
fd |
|
) |
| |
Guarda en un archivo binario los pesos W[i], el valor de U. (neurona por neurona)
- Parámetros
-
[in] | NeuronML | La estructura multicapa a leer. |
[in,out] | fd | Manejador del fichero binario a escribir. |
- Devuelve
- TRUE si todo fue bien o FALSE si no (ej: NeuronML==NULL o fd==NULL).
◆ pds_neuronml_body_fread()
int pds_neuronml_body_fread |
( |
PdsNeuronML * |
NeuronML, |
|
|
FILE * |
fd |
|
) |
| |
Lee de un archivo binario los pesos W[i], el valor de U. (neurona por neurona)
- Parámetros
-
[out] | NeuronML | La estructura multicapa a escribir. |
[in,out] | fd | Manejador del fichero binario a escribir. |
- Devuelve
- TRUE si todo fue bien o FALSE si no (ej: NeuronML==NULL o fd==NULL).
◆ pds_neuronml_free()
◆ pds_neuronml_destroy()
Libera una neurona de tipo puntero PdsNeuronML, y limpia el puntero con NULL.
- Parámetros
-
[in,out] | Neuron | La neurona a liberar y limpiar. |
- Devuelve
- No retorna valor.