DENN is a framework designed and developed to train Deep Neural Networks using the Differential Evolution as optimizer.
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
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.
- C++14 Compiler
- CMake
- Python 3
- C++:
- zlib
- Python:
- numpy
- tqdm
- pandas
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}
}