DCM-UPB / QNets

C++ library that allows to use (Feed Forward) Neural Networks in C++ with a few simple commands.
Other
2 stars 3 forks source link

Trainer class #9

Closed Ithanil closed 6 years ago

Ithanil commented 6 years ago

This PR contains a NN training system, the updated smart beta generator and a cleanup of directory structure and scripts. Also contains 3 new unittests for the new code (including your smart beta unittest) and an example for the trainer. In total we have the following new classes/files: NNTrainingData, NNTrainingConfig, NNTrainer, NNTrainerGSL, GSLFitStruct, SmartBetaGenerator.

Besides the directory/script changes, everything should be well explained by respective doc sections, slack communication and similar.

Directory/script changes:

EDIT: Obviously the whole build/include management is becoming increasingly complex. I think it is time to make the transition to an autotools-based build (i.e. ./configure && make). But this will be added in a later PR.

EDIT2: In the meantime, further significant changes have been introduced with this PR: 1) Even faster ray implementation

I did another overhaul of the feeder implementation (especially the isBetaUsed problem) and think we have now reached a really clean and reasonable final version (and another 30% performance boost).

2) Betas vs. Variational Parameters

coveralls commented 6 years ago

Pull Request Test Coverage Report for Build 98


Changes Missing Coverage Covered Lines Changed/Added Lines %
src/actf/ReLUActivationFunction.hpp 0 2 0.0%
src/actf/SELUActivationFunction.hpp 0 2 0.0%
src/actf/TanSigmoidActivationFunction.hpp 0 2 0.0%
src/feeder/SmartBetaGenerator.cpp 98 100 98.0%
src/actf/SineActivationFunction.hpp 0 4 0.0%
src/io/PrintUtilities.cpp 0 11 0.0%
src/trainer/NNTrainer.cpp 93 110 84.55%
src/network/FeedForwardNeuralNetwork.cpp 67 88 76.14%
src/trainer/NNTrainerGSL.cpp 232 253 91.7%
<!-- Total: 706 788 89.59% -->
Totals Coverage Status
Change from base Build 96: 83.6%
Covered Lines: 1641
Relevant Lines: 1963

💛 - Coveralls