/deep-neural-network

Deep Neural Network Library: A flexible C++ library for building, training, and using deep neural networks. Modular, easy-to-use, and high-performance.

Primary LanguageC++

Deep Neural Network

Dependencies

How to compile

mkdir build
cd build
cmake ..
make

To turn on all types of logs use cmake -DDEBUG=ON.

How to add and run tests

Filenames of tests must be compliant to the following patterns:

Source Input
test_*.cpp test_*.txt

and all tests must be in the test directory.

After the compilation phase, inside the build directory run, you can run all tests with:

ctest # -V for verbose output

To execute a single test:

./test/test_<test_name>

or refer to the CMake doc.

Example test

You can run an example test with:

./test/test_DefaultTrainer

Generate documentation

Simply run in the build directory

make documentation

and look for the index.html inside doc/html/.


TODO-List

  • Utilizzo di C++ 11
  • Implementare classi astratte (interfacce)
  • Cambiare nomi variabili private (_)
  • Funzioni inline
  • Rimozione classe Connection
  • Rimuovere bool isBias
  • Utilizzo namespace e alias
  • Const correctess
  • Operator []
  • Salvataggio stato rete
  • Funzione caricamento pesi
  • Caricamento struttura rete da file
  • Classe Loader
  • Adattare metodi per il salvataggio e caricamento della rete nella classe Loader
  • Algoritmo di backpropagation
  • Generazione training e test set
  • Lettura training set
  • Libreria matematica
  • Sistemare scelta del passo per l'algoritmo di back-prop
  • Ridirigere l'output della compilazione di doxygen da qualche altra parte
  • Algoritmo di testing
  • Implementare funzione test e statistiche
  • Metodo getActivationFunction che restituisce g() e con una mappa otteniamo g’()
  • Parallelizzazione (thread)
  • Scrivere la documentazione mancante