neural net
holds the structure of all layers and some data for the whole net does not know the layer data though (i.e. values of the nodes and weights)
Definition at line 1059 of file NeuralNet.h.
Public Types | |
| typedef std::pair< iterator_type, iterator_type > | begin_end_type |
| typedef std::vector< double > | container_type |
| typedef container_type::iterator | iterator_type |
Protected Member Functions | |
| void | fillDropContainer (DropContainer &dropContainer, double dropFraction, size_t numNodes) const |
| prepare the drop-out-container (select the nodes which are to be dropped out) | |
Private Attributes | |
| ModeErrorFunction | m_eErrorFunction |
| denotes the error function | |
| std::vector< Layer > | m_layers |
| layer-structure-data | |
| size_t | m_sizeInput |
| input size of this DNN | |
| size_t | m_sizeOutput |
| output size of this DNN | |
#include <TMVA/NeuralNet.h>
Definition at line 1065 of file NeuralNet.h.
| typedef std::vector<double> TMVA::DNN::Net::container_type |
Definition at line 1063 of file NeuralNet.h.
| typedef container_type::iterator TMVA::DNN::Net::iterator_type |
Definition at line 1064 of file NeuralNet.h.
|
inline |
c'tor
Definition at line 1072 of file NeuralNet.h.
d'tor
Definition at line 1083 of file NeuralNet.h.
|
inline |
Definition at line 1093 of file NeuralNet.h.
|
inline |
add a layer (layout)
Definition at line 1092 of file NeuralNet.h.
| void TMVA::DNN::Net::backPropagate | ( | std::vector< std::vector< LayerData > > & | layerPatternData, |
| const Settings & | settings, | ||
| size_t | trainFromLayer, | ||
| size_t | totalNumWeights ) const |
Definition at line 1345 of file NeuralNet.icc.
|
inline |
Definition at line 1249 of file NeuralNet.h.
| std::vector< double > TMVA::DNN::Net::compute | ( | const std::vector< double > & | input, |
| const Weights & | weights ) const |
compute the net with the given input and the given weights
compute the neural net
| input | the input data |
| weights | the weight data |
Definition at line 1027 of file NeuralNet.icc.
| std::tuple< double, double > TMVA::DNN::Net::computeError | ( | const Settings & | settings, |
| std::vector< LayerData > & | lastLayerData, | ||
| Batch & | batch, | ||
| ItWeight | itWeightBegin, | ||
| ItWeight | itWeightEnd ) const |
Definition at line 1311 of file NeuralNet.icc.
| void TMVA::DNN::Net::dE | ( | ) |
| void TMVA::DNN::Net::dropOutWeightFactor | ( | WeightsType & | weights, |
| const DropProbabilities & | drops, | ||
| bool | inverse = false ) |
set the drop out configuration
compute the drop-out-weight factor
when using drop-out a fraction of the nodes is turned off at each cycle of the computation once all nodes are turned on again (for instances when the test samples are evaluated), the weights have to be adjusted to account for the different number of active nodes this function computes the factor and applies it to the weights
Definition at line 652 of file NeuralNet.icc.
| double TMVA::DNN::Net::E | ( | ) |
| double TMVA::DNN::Net::errorFunction | ( | LayerData & | layerData, |
| Container | truth, | ||
| ItWeight | itWeight, | ||
| ItWeight | itWeightEnd, | ||
| double | patternWeight, | ||
| double | factorWeightDecay, | ||
| EnumRegularization | eRegularization ) const |
computes the error of the DNN
compute the error function
Definition at line 1569 of file NeuralNet.icc.
| void TMVA::DNN::Net::fetchOutput | ( | const LayerData & | lastLayerData, |
| OutputContainer & | outputContainer ) const |
Definition at line 1281 of file NeuralNet.icc.
| void TMVA::DNN::Net::fetchOutput | ( | const std::vector< LayerData > & | layerPatternData, |
| OutputContainer & | outputContainer ) const |
Definition at line 1302 of file NeuralNet.icc.
|
protected |
prepare the drop-out-container (select the nodes which are to be dropped out)
prepare the drop-out container given the provided drop-fractions
Definition at line 572 of file NeuralNet.cxx.
| double TMVA::DNN::Net::forward_backward | ( | LayerContainer & | layers, |
| PassThrough & | settingsAndBatch, | ||
| ItWeight | itWeightBegin, | ||
| ItWeight | itWeightEnd, | ||
| ItGradient | itGradientBegin, | ||
| ItGradient | itGradientEnd, | ||
| size_t | trainFromLayer, | ||
| OutContainer & | outputContainer, | ||
| bool | fetchOutput ) const |
main NN computation function
forward propagation and backward propagation
Definition at line 1395 of file NeuralNet.icc.
| void TMVA::DNN::Net::forwardBatch | ( | const LayerContainer & | _layers, |
| LayerPatternContainer & | layerPatternData, | ||
| std::vector< double > & | valuesMean, | ||
| std::vector< double > & | valuesStdDev, | ||
| size_t | trainFromLayer ) const |
Definition at line 1230 of file NeuralNet.icc.
| void TMVA::DNN::Net::forwardPattern | ( | const LayerContainer & | _layers, |
| std::vector< LayerData > & | layerData ) const |
Definition at line 1211 of file NeuralNet.icc.
| void TMVA::DNN::Net::initializeWeights | ( | WeightInitializationStrategy | eInitStrategy, |
| OutIterator | itWeight ) |
initialize the weights with the given strategy
initialization of the weights
Definition at line 1460 of file NeuralNet.icc.
|
inline |
input size of the DNN
Definition at line 1096 of file NeuralNet.h.
|
inline |
returns the layers (structure)
Definition at line 1244 of file NeuralNet.h.
returns the layers (structure)
Definition at line 1243 of file NeuralNet.h.
| size_t TMVA::DNN::Net::numNodes | ( | size_t | trainingStartLayer = 0 | ) | const |
returns the number of nodes in this net
Definition at line 556 of file NeuralNet.cxx.
| size_t TMVA::DNN::Net::numWeights | ( | size_t | trainingStartLayer = 0 | ) | const |
returns the number of weights in this net
compute the number of weights given the size of the input layer
Definition at line 540 of file NeuralNet.cxx.
execute computation of the DNN for one mini-batch (used by the minimizer); no computation of gradients
Definition at line 1060 of file NeuralNet.icc.
| double TMVA::DNN::Net::operator() | ( | PassThrough & | settingsAndBatch, |
| const Weights & | weights, | ||
| ModeOutput | eFetch, | ||
| OutContainer & | outputContainer ) const |
execute computation of the DNN for one mini-batch; helper function
Definition at line 1069 of file NeuralNet.icc.
| double TMVA::DNN::Net::operator() | ( | PassThrough & | settingsAndBatch, |
| Weights & | weights, | ||
| Gradients & | gradients ) const |
execute computation of the DNN for one mini-batch (used by the minimizer); returns gradients as well
Definition at line 1079 of file NeuralNet.icc.
| double TMVA::DNN::Net::operator() | ( | PassThrough & | settingsAndBatch, |
| Weights & | weights, | ||
| Gradients & | gradients, | ||
| ModeOutput | eFetch, | ||
| OutContainer & | outputContainer ) const |
Definition at line 1089 of file NeuralNet.icc.
|
inline |
output size of the DNN
Definition at line 1097 of file NeuralNet.h.
| std::vector< std::vector< LayerData > > TMVA::DNN::Net::prepareLayerData | ( | LayerContainer & | layers, |
| Batch & | batch, | ||
| const DropContainer & | dropContainer, | ||
| ItWeight | itWeightBegin, | ||
| ItWeight | itWeightEnd, | ||
| ItGradient | itGradientBegin, | ||
| ItGradient | itGradientEnd, | ||
| size_t & | totalNumWeights ) const |
Definition at line 1101 of file NeuralNet.icc.
| void TMVA::DNN::Net::preTrain | ( | std::vector< double > & | weights, |
| std::vector< Pattern > & | trainPattern, | ||
| const std::vector< Pattern > & | testPattern, | ||
| Minimizer & | minimizer, | ||
| Settings & | settings ) |
pre-training for future use
|
inline |
remove one layer
Definition at line 1246 of file NeuralNet.h.
|
inline |
which error function is to be used
Definition at line 1094 of file NeuralNet.h.
|
inline |
set the input size of the DNN
Definition at line 1090 of file NeuralNet.h.
|
inline |
set the output size of the DNN
Definition at line 1091 of file NeuralNet.h.
| double TMVA::DNN::Net::train | ( | std::vector< double > & | weights, |
| std::vector< Pattern > & | trainPattern, | ||
| const std::vector< Pattern > & | testPattern, | ||
| Minimizer & | minimizer, | ||
| Settings & | settings ) |
start the training
execute the training until convergence emerges
| weights | weight vector |
| trainPattern | training pattern |
| testPattern | test pattern |
| minimizer | use this minimizer for training (e.g. SGD) |
| settings | settings used for this training run |
| weights | the container with the weights (synapses) |
| trainPattern | the pattern for the training |
| testPattern | the pattern for the testing |
| minimizer | the minimizer (e.g. steepest gradient descent) to be used |
| settings | the settings for the training (e.g. multithreading or not, regularization etc.) |
Definition at line 712 of file NeuralNet.icc.
|
inline |
executes one training cycle
execute a single training cycle
| minimizer | the minimizer to be used |
| weights | the weight vector to be used |
| itPatternBegin | the pattern to be trained with |
| itPatternEnd | the pattern to be trained with |
| settings | the settings for the training |
| dropContainer | the configuration for DNN drop-out |
uses multithreading if turned on
| minimizer | the minimizer to be used (e.g. SGD) |
| weights | the weight container with all the synapse weights |
| itPatternBegin | begin of the pattern container |
| itPatternEnd | the end of the pattern container |
| settings | the settings for this training (e.g. multithreading or not, regularization, etc.) |
| dropContainer | the data for dropping-out nodes (regularization technique) |
Definition at line 929 of file NeuralNet.icc.
|
private |
denotes the error function
Definition at line 1267 of file NeuralNet.h.
|
private |
layer-structure-data
Definition at line 1270 of file NeuralNet.h.
|
private |
input size of this DNN
Definition at line 1268 of file NeuralNet.h.
|
private |
output size of this DNN
Definition at line 1269 of file NeuralNet.h.