This repository contains code for our Natural Computing final project, called Structure-Based Evolution of Convolutional Neural Network Architectures.
We created a system that uses a genetic algorithm to generate convolutional neural networks. These networks are tested on the CIFAR-10 benchmark dataset. Our best network achieved a validation accuracy of 80%.
Modify and run main.py
to generate and train networks using the given settings.
- Keras
- TensorFlow
- Matplotlib
- Numpy
- Pandas
initialization.py
: module for creating random network representations (as dictionaries) that are accepted by the genetic algorithm.main.py
: main file of this project.run_benchmark_model.py
: module for creating a benchmark CNN based on VGGNET and training it on CIFAR-10.run_dict_model.py
: module for creating a CNN model in Keras based on a network representation as generated by the genetic algorithm.utils.py
: module containing utility functions for saving and loading objects using cPickle.validate.py
: module for validating a given network representation.
- Lars Kuijpers
- Jeroen Manders
- Timo van Niedek