/DENN

Differential Evolution for Neural Networks

Primary LanguageC++Apache License 2.0Apache-2.0

DENN: Differential Evolution for Neural Networks

DENN is a framework designed and developed to train Deep Neural Networks using the Differential Evolution as optimizer.

How to use

First of all you have to generate the dataset file, in order to do that, execution the following commands:

python3 -m pip install -r requirements.txt
cd datasets
python3 build_*
cd ..

Then compile the DENN framework, running the following command:

make release

Finally, choose one of the templates and run it, for instance:

Release/DENN-float template/JADE_NN_MNIST.config

History

The first implementation of this algorithm was in 2017 . Then we have developed a standard-alone implementation: DENN-LITE, in which we have implemented the JADE, ADE, SHADE, and other DE variants, applied on classification and algorithm learning problems. Finally, this repository is the code used for the MDPI publication, where an analysis of that algorithm applied to many problems was presented. Also, at WIVACE 2019, a coevolution version (CoDENN) was presented, and the source couse is avaliable as branch of this repository.

Requirements

  • C++14 Compiler
  • CMake
  • Python 3

Dependencies

  • C++:
    • zlib
  • Python:
    • numpy
    • tqdm
    • pandas

Citation

If you use this code for your research, please cite our paper.

@article{baioletti2020differential,
title={Differential Evolution for Neural Networks Optimization},
author={Baioletti, Marco and Di Bari, Gabriele and Milani, Alfredo and Poggioni, Valentina},
journal={Mathematics},
volume={8},
number={1},
pages={69},
year={2020},
publisher={Multidisciplinary Digital Publishing Institute}
}