Blacklight
Genetic algorithms in autoML.
This project aims to use Genetic Algorithms to optimize the topologies of Deep Neural Networks (DNNs) and explore new possibilities that traditional optimization techniques might overlook. The fitness function of the algorithm is the accuracy of the model, and the genes represent the individual topologies.
Installation
Make sure you have Python 3.9 or higher installed (not greater than 3.11).
Windows, Linux
- Create new virtual environment:
pip install -m virtualenvpython -m venv your_virtual_env_nameyour_virtual_env_name\Scripts\activate
- Install Tensorflow:
pip install tensorflow
- Install the package:
pip install blacklight
MacOS (Intel)
- Create new virtual environment:
pip install -m virtualenvpython -m venv your_virtual_env_nameyour_virtual_env_name\Scripts\activate
- Install Tensorflow:
pip install tensorflow-macospip install tensorflow-metal
- Install the package:
pip install blacklight
MacOS (Apple Silicon)
- Download Miniconda from: https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-arm64.sh
- Install Miniconda:
- Navigate to downloads folder
cd ~/Downloads bash Miniconda3-latest-MacOSX-arm64.sh -b -p $HOME/miniconda
- Navigate to downloads folder
- Activate Miniconda:
source ~/miniconda/bin/activate
- Install TensorFlow dependencies:
conda install -c apple tensorflow-deps
- Install TensorFlow:
pip install tensorflow-macospip install tensorflow-metal
- Install the package:
pip install blacklight
Hypothesis
The hypothesis of this project is that DNN topologies will converge to either a local maximum or an absolute maximum over the evolution process, offering better performance than a DNN with randomly selected topology. For this experiment, the project will use equivalent activation functions (ReLU) and SGD for back-propagation, holding everything except the topology constant. Updated documentation coming soon.
Methodology
The project utilizes a genetic algorithm to evolve the topology of the DNN. The algorithm starts with a randomly generated population of DNN topologies and evaluates their fitness using the accuracy of the model. The fittest individuals are selected for reproduction, while the weaker ones are discarded. The offspring of the selected individuals are then created through crossover and mutation. This process is repeated for a specified number of generations, and the best-performing topology is chosen as the final output.
Documentation
Documentation can be found at https://blacklightlabs.github.io/blacklight/html/index.html
Metadata
Release files for blacklight 0.1.11
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| blacklight-0.1.11.tar.gz | 54.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| blacklight-0.1.11-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 119.2 kB
Release files / blacklight-0.1.11.tar.gz
| Download URL | blacklight-0.1.11.tar.gz |
|---|---|
| Size | 54.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8579fb3e5a4a4003e50551d7d30fc6e71384e3a6453bb4138994a83d3e355f23
|
|
BLAKE2b-256 checksum How to use checksums |
193598c2e7f20b86c0530e14ab9ddc7b7e16bce3b5fd1dd48d1f2cee227c109c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.5.1 CPython/3.10.11 Linux/5.15.0-1041-azure
|
Release files / blacklight-0.1.11-py3-none-any.whl
| Download URL | blacklight-0.1.11-py3-none-any.whl |
|---|---|
| Size | 64.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ef7e5b52f420cf29d962ec09fe8739e4d71676ac9bef565fb0fc0b662e80a32f
|
|
BLAKE2b-256 checksum How to use checksums |
18b5f82cad6d9d8a3cdab5572fc4d987fe79253c38c179b0bd71eecd2fd1e47c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.5.1 CPython/3.10.11 Linux/5.15.0-1041-azure
|