Home | Develop | Download | Contact
PDS Neural Networks

Tabla de contenidos


Autor
Fernando Pujaico Rivera
Fecha
$\mathrm{\today}$
Versión
0.5.0

1 Descargando la biblioteca

1.1 Descargando paquete *.tar.gz

La versión 0.5.0 de la biblioteca PDS Neural Networks (libpdsnn) puede ser descargado en libpdsnn-0.5.0.tar.gz o usando el comando:

wget http://download.savannah.gnu.org/releases/pdsplibrary/src/libpdsnn/libpdsnn-0.5.0.tar.gz

Es necesario tener instalado wget.

1.2 Descargando el actual código fuente no versionado

El actual código fuente no oficial de PDS Neural Networks puede ser descargado usando el comando:

bzr branch bzr://bzr.savannah.nongnu.org/pdsplibrary/libpdsnn

Es necesario tener instalado bazaar.

2 Compilando e instalando la biblioteca

Para compilar la biblioteca PDS Neural Networks es necesario tener en cuenta el siguiente diagrama de dependencias de la biblioteca.

compilar.png
Crear/Compilar la biblioteca PDS Neural Networks.

Como se puede ver, son necesarios los archivos de definiciones *.h y las bibliotecas empaquetadas en binario (*.a o *.so).

2.1 Compilando e instalando desde código

# Creando directorio de compilación
mkdir build
cd build
# Define donde se instalará la biblioteca, ejemplo: /usr/local
# Define donde está el código fuente la biblioteca, ejemplo: /path/of/source/libpdsnn
cmake -DCMAKE_INSTALL_PREFIX=/usr/local /path/of/source/libpdsnn
# Compila el codigo fuente
make
# Instala la biblioteca
sudo make install

2.2 Compilando e instalando desde *.deb

# Creando directorio de compilación
mkdir build
cd build
# Define donde está el código fuente la biblioteca, ejemplo: /path/of/source/libpdsnn
# Es obligatorio usar el el directorio de instalación en /usr
cmake -DCMAKE_INSTALL_PREFIX=/usr /path/of/source/libpdsnn
# Compilar y crea el paquete *.deb
make package
# Instala la biblioteca
sudo dpkg -i libpdsnn-0.5.0_ARCHITECTURE.deb

Donde ARCHITECTURE puede ser "i386", "amd64", etc.

3 Usando la biblioteca para compilar un programa

Una vez instalada la biblioteca PDS Neural Networks, para que esta pueda ser usada por algún otro proyecto, es necesario tener en cuenta el siguiente diagrama de dependencia de la biblioteca.

enlazar.png
Usar/Enlazar dinámicamente la biblioteca PDS Neural Networks.

Para usar PDS Neural Networks en un proyecto (como example.c), se debe agregar la siguiente cabecera al inicio del código fuente.

#include <pds/pdsnn.h>

Esto incluirá todas las definiciones de las funciones de la biblioteca PDS Neural Networks.

3.1 Código de ejemplo

#include <stdlib.h>
#include <pds/pdsra.h>
#include <pds/pdsnn.h>
int main(int argc, char** argv)
{
PdsNnNatural i,id,Iter0,Iter1,Iter2;
PdsNnNatural Ntraining=150;
// Creating the neural network
PdsNnNatural Larray[]={128,256,96,48,16,3};
PdsNnNatural Nel=6;
if(MLayer==NULL) return EXIT_FAILURE;
// Configuring the neural network
PdsNnReal Alpha=0.6; pds_neuronml_set_alpha(MLayer,Alpha);
PdsNnReal Error=0.1; pds_neuronml_set_max_error(MLayer,Error);
PdsNnNatural MaxIter=8192; pds_neuronml_set_max_iterations(MLayer,MaxIter);
// Creating temporal vectors X and Y.
PdsVector *X = pds_vector_new(Larray[0]);
PdsVector *Y = pds_vector_new(Larray[Nel-1]);
if( (X==NULL)||(Y==NULL) ) return EXIT_FAILURE;
// Training the neural network
id=0;
for(i=0;id<Ntraining;i++)
{
printf("\nTraining %4d: id=%4d\n",i,id);
// Training with data type 0.
pds_neuronml_training(MLayer,X,Y);
// Training with data type 1.
pds_neuronml_training(MLayer,X,Y);
// Training with data type 2.
pds_neuronml_training(MLayer,X,Y);
if( (Iter0==0)&&(Iter1==0)&&(Iter2==0) )
id++;
else
id=0;
}
pds_neuronml_save_data(MLayer,"data_example.mlayer");
printf("\nNeural network saved in data_example.mlayer\n\n");
pds_vector_free(X);
pds_vector_free(Y);
return EXIT_SUCCESS;
}

example.c

3.2 Compilando un ejemplo

Luego para compilar enlazando estáticamente (Statically linked) un archivo de código fuente llamado example.c, debe ser usado el siguiente comando

gcc -static -o example example.c -lpdsnn -lpdsra -lpdsrv -lpdssn -lm

Por otro lado si se desea compilar enlazando dinamicamente (Dynamically linked) un archivo de código fuente llamado example.c, debe ser usado el siguiente comando

gcc -o example example.c -lpdsnn -lpdsra -lpdsrv -lm

3.3 Compilando un ejemplo : usando pkg-config

Adicionalmente es posible usar pkg-config para obtener los datos de configuración del proceso de compilación.

Atención
Es necesario tener instalado pkg-config
#Statically linked.
gcc -static -o example example.c `pkg-config --static --libs --cflags libpdsnn`


#Dynamically linked.
gcc -o example example.c `pkg-config --libs --cflags libpdsnn`

4 Versión

Es posible conocer la version instalada de la biblioteca libpdsnn usando el siguiente comando

pkg-config --modversion libpdsnn

Enlaces de interés

HomePage Bazaar Download Bug report Ayuda Developer Feed