Optimización de Redes Neuronales con Algoritmos Genéticos
- Autor(a): Luis Liñán Villafranca
- Tutor(a)(es): Juan Julián Merelo Guervós
- Índice
- Instalación
- Ejecución de test y otras utilidades
- Documentación
- Presentación
- Desarrollo
- Frameworks
- Utilidades
- Licencia
Como primer requisito, se debe de tener Python 3.7 y pip instalados en el sistema. Es muy recomendable crear un entorno virtual para aislar correctamente las versiones de los paquetes que se vayan a utilizar. Para más información sobre pip y venv consultar el tutorial oficial.
Para crear un entorno virtual, podemos usar el módulo que viene incorporado
con la instalación de Python desde la versión 3.3
:
python3.7 -m venv .venv
Así habríamos creado un entorno virtual en el directorio .venv
. Una vez
instalado el entorno virtual, deberemos activarlo. Para ello hay que ejecutar
uno de los siguientes comandos dependiendo del interprete de órdenes que se
use (tabla obtenida de la documentación oficial de venv):
Platform | Shell | Command to activate virtual environment |
---|---|---|
POSIX | bash/zsh | $ source <venv>/bin/activate |
fish | $ . <venv>/bin/activate.fish |
|
csh/tcsh | $ source <venv>/bin/activate.csh |
|
PowerShell Core | $ <venv>/bin/Activate.ps1 |
|
Windows | cmd.exe | C:\> <venv>\Scripts\activate.bat |
PowerShell | PS C:\> <venv>\Scripts\Activate.ps1 |
Tabla 1.1: Activación de entorno virtual.
Para ejecutar DeepGProp, primero hay que instalar su interfáz de línea de comandos. Para ello, tras crear el entorno virtual, ejecutaremos:
pip install .
Si se quiere instalar en modo edición (para que los cambios realizados en el
código tengan efecto en la interfáz) será necesario añadir el indicador -e
:
pip install -e .
Tras la instalación tendremos disponible el comando dgp
. Puedes ejecutar lo
siguiente para obtener las opciones existentes:
dgp --help
He dividido los paquetes utilizados en el proyecto en distintos grupos para evitar instalar librerías no deseadas si vamos a realizar tareas concretas (como construir la documentación o ejecutar cierto módulo):
Propósito | Ruta del archivo | Descripción |
---|---|---|
Producción | requirements/prod.txt |
Paquetes necesarios para ejecutar código asociado directamente a DeepGProp. El apartado anterior realiza esta acción. |
Documentación | requirements/docs.txt |
Paquetes necesarios para construir la documentación. Si se usa Nox, no será necesario instalar estos paquetes a mano. |
Test | requirements/tests.txt |
Paquetes para ejecutar los tests. Si se usa Nox, no será necesario instalar estos paquetes a mano. |
Comparativa de Optimizadores | requirements/hp_optimization.txt |
Paquetes usados en la comparativa de optimizadores de hiper-parámetros. |
Comparativa de Frameworks para MLP | requirements/mlp_frameworks.txt |
Paquetes usados en la comparativa de frameworks para redes neuronales. |
Para instalar cualquiera de los grupos de paquetes hay que ejecutar:
pip install -r <nombre archivo>
pudiendo sustituirse <nombre archivo>
cualquiera de los anteriores. Si se
quisiera instalar los paquetes sin usar un entorno virtual (no recomendado)
se puede ejecutar el siguiente comando:
python3.7 -m pip install --user -r <nombre archivo>
Es el mismo comando pero precedido por python3.7 -m
para evitar problemas
si tenemos otras versiones de Python instaladas en el sistema.
Nota: Si se ha optado por usar un entorno virtual, debe ser activado usando uno de los comandos mostrados en la tabla de la sección de instalación antes de ejecutar cualquiera de los siguientes comandos.
Primero instalamos la herramienta Nox:
pip install -U nox
Para ejecutar los test:
nox -k test
Para pasar los distintos linters al código:
nox -k lint
Para mostrar todas las opciones disponibles:
nox -l
Para poder construir en su máquina la documentación o ejecutar los tests de ésta, será necesario instalar la lista de paquetes siguiente:
- aspell
- aspell-en
- aspell-es
- pandoc
- qpdf
- texlive-base
- texlive-latex-recommended
- texlive-fonts-recommended
- texlive-fonts-extra
- texlive-lang-spanish
- texlive-formats-extra
- texlive-science
Para instalarlo en Ubuntu sería:
sudo apt install -y aspell aspell-es pandoc qpdf texlive-base \
texlive-latex-recommended texlive-fonts-recommended \
texlive-fonts-extra texlive-lang-spanish \
texlive-formats-extra
Una vez instalados, Nox terminara de obtener todo lo necesario y construirá la documentación con el siguiente comando:
nox -e build-pdf
La presentación está hecha en Markdown, con la herramienta Marp. Para poder obtener una visualización de la presentación es necesario instalar la interfaz de línea de comandos que este proyecto provee:
npm install @marp-team/marp-cli
Tras la instalación, es necesario ejecutar:
npx marp --preview docs/presentation/presentation.md
Para obtener la presentación en formato PDF, se pueden seguir las instrucciones oficiales.
En este proyecto se usa un metodología de desarrollo basada en test.
Se utilizará también un fichero de cambios basado en Keep a Changelog. Esta
información se guardará en el archivo CHANGELOG.md
.
-
Keras - librería para la creación y ejecución de redes neuronales.
-
DEAP - librería de construcción de algoritmos evolutivos. Se utilizará ésta para optimizar los parámetros de las redes neuronales.
En el capítulo 3 "El estado del arte" se podrá encontrar una comparativa detallada con otras bibliotecas similares y el por qué de la elección de éstas.
-
Automatización:
- Nox - herramienta de automatización para ejecutar procesos como la construcción de la documentación o el lanzamiento de tests.
-
Tests:
-
Documentación:
El código de este repositorio está liberado bajo la licencia
GPLv3. Para más información vea el archivo LICENSE
.