Skip to main content

Train Multilayer Perceptrons with Genetic Algorithms.

Project description

Neural Networks optimization with Genetic Algorithms

Based on the BSc thesis by

  • Author: Luis Liñán Villafranca

  • Mentor: Juan Julián Merelo Guervós



Installation

The first prerequisite is to have Python 3.6, 3.7 or 3.8 and pip installed on the system. It is recommended to create a virtual environment to isolate the used package versions. For more information about pip and venv check the official tutorial.

If you are using pyenv, remember to compile your version with the –enable-shared configuration option:

First, you need to install a version of python that’s been compiled with -fPIC. pyenv versions by default are not, so you will need to issue something like this:

env PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install 3.8.6

Virtual environment creation

We can use a core module to create the virtual environment, it’s been working since version 3.3

python -m venv .venv

Please make sure when you do this that all __pycache__ directories have been deleted; otherwise, it might fail in some unexpected place.

This will create a virtual environment in the .venv directory. Once that’s been done, we need to activate it; use one of the following commands (depending on the interpreter) (obtained from the official venv documentation):

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

Table 1.1: Activating the virtual environment.

You won’t need to create the virtual environment in the case you’re using global installation of modules via version managers such as pyenv.

Installing the DeepGProp CLI

To run DeepGProp first we need to install its cli. You can install it with pip:

pip install -U DeepGProp

Or downloading the repository with:

pip install .

On the other hand, if we want the code to be updated as we change it, we will need to install DeepGProp in editable mode. To do this, we need to add the option -e/--editable to the installation command:

pip install -e .

All the available options can be listed using:

dgp --help

Extra modules

I’ve divided all the used packages in different groups to avoid installing undesirable ones for specific use of the repository:

Purpose

File path

Description

Test

requirements/tests.txt

Necessary packages for tests. Nox installs them automaticly when running the tests.

Lint

requirements/lint.txt

Necessary packages for linting. Nox installs them automaticly when linting the code.

Format

requirements/format.txt

Necessary packages for formatting. Nox installs them automaticly when running format command.

Dev

requirements/dev.txt

All above packages.

To install any of these packages you can run:

pip install -r <file path>

If you are not using any virtual environment, make sure you install these packages so that they are available in the required Python version.

Tutorials

Tests and formatting

First, we need to install the Nox tool:

pip install -U nox

To run all the tests:

nox -k test

To run the linters:

nox -k lint

You can check all the possible sessions with the following command:

nox -l

Frameworks

  • Keras - base library to create and run the neural networks.

  • DEAP - genetic algorithms library used to optimize the models hyper parametters.

Utilities

  • Automation:

    • Nox - automation tool to run different tasks as the tests or the code formatting check.

  • Tests:

    • pytest - Python test framework to run the tests.

Datasets

All datasets need to have a first row with the column names, and one of the columns needs to be named class. For the time being, it’s prepared to run only classification problems.

Licence

The original code can be found in the DeepGProp repo under GPLv3 License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

DeepGProp-1.0.8.tar.gz (581.7 kB view hashes)

Uploaded Source

Built Distribution

DeepGProp-1.0.8-py3-none-any.whl (633.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page