Logo ROOT   master
Reference Guide
NeuralNet.h File Reference
#include <vector>
#include <iostream>
#include <fstream>
#include <algorithm>
#include <iterator>
#include <functional>
#include <tuple>
#include <cmath>
#include <cassert>
#include <random>
#include <thread>
#include <future>
#include <type_traits>
#include "Pattern.h"
#include "Monitoring.h"
#include "TApplication.h"
#include "Timer.h"
#include "TH1F.h"
#include "TH2F.h"
#include <fenv.h>
#include "TMVA/NeuralNet.icc"
Include dependency graph for NeuralNet.h:
This graph shows which files directly or indirectly include this file:

Classes

class  TMVA::DNN::Batch
 The Batch class encapsulates one mini-batch. More...
 
class  TMVA::DNN::ClassificationSettings
 Settings for classificationused to distinguish between different function signatures. More...
 
class  TMVA::DNN::Layer
 Layer defines the layout of a layer. More...
 
class  TMVA::DNN::LayerData
 LayerData holds the data of one layer. More...
 
class  TMVA::DNN::MeanVariance
 
class  TMVA::DNN::Net
 neural net More...
 
class  TMVA::DNN::Settings
 Settings for the training of the neural net. More...
 
class  TMVA::DNN::Steepest
 Steepest Gradient Descent algorithm (SGD) More...
 

Namespaces

 TMVA
 create variable transformations
 
 TMVA::DNN
 

Typedefs

typedef std::vector< char > TMVA::DNN::DropContainer
 
typedef std::tuple< Settings &, Batch &, DropContainer & > TMVA::DNN::pass_through_type
 

Enumerations

enum  TMVA::DNN::EnumFunction {
  TMVA::DNN::EnumFunction::ZERO = '0', TMVA::DNN::EnumFunction::LINEAR = 'L', TMVA::DNN::EnumFunction::TANH = 'T', TMVA::DNN::EnumFunction::RELU = 'R',
  TMVA::DNN::EnumFunction::SYMMRELU = 'r', TMVA::DNN::EnumFunction::TANHSHIFT = 't', TMVA::DNN::EnumFunction::SIGMOID = 's', TMVA::DNN::EnumFunction::SOFTSIGN = 'S',
  TMVA::DNN::EnumFunction::GAUSS = 'G', TMVA::DNN::EnumFunction::GAUSSCOMPLEMENT = 'C'
}
 
enum  TMVA::DNN::EnumRegularization { TMVA::DNN::EnumRegularization::NONE, TMVA::DNN::EnumRegularization::L1, TMVA::DNN::EnumRegularization::L2, TMVA::DNN::EnumRegularization::L1MAX }
 
enum  TMVA::DNN::MinimizerType { TMVA::DNN::fSteepest }
 < list all the minimizer types More...
 
enum  TMVA::DNN::ModeErrorFunction { TMVA::DNN::ModeErrorFunction::SUMOFSQUARES = 'S', TMVA::DNN::ModeErrorFunction::CROSSENTROPY = 'C', TMVA::DNN::ModeErrorFunction::CROSSENTROPY_MUTUALEXCLUSIVE = 'M' }
 error functions to be chosen from More...
 
enum  TMVA::DNN::ModeOutput { TMVA::DNN::ModeOutput::FETCH }
 
enum  TMVA::DNN::ModeOutputValues : int { TMVA::DNN::ModeOutputValues::DIRECT = 0x01, TMVA::DNN::ModeOutputValues::SIGMOID = 0x02, TMVA::DNN::ModeOutputValues::SOFTMAX = 0x04, TMVA::DNN::ModeOutputValues::BATCHNORMALIZATION = 0x08 }
 
enum  TMVA::DNN::WeightInitializationStrategy { TMVA::DNN::WeightInitializationStrategy::XAVIER, TMVA::DNN::WeightInitializationStrategy::TEST, TMVA::DNN::WeightInitializationStrategy::LAYERSIZE, TMVA::DNN::WeightInitializationStrategy::XAVIERUNIFORM }
 weight initialization strategies to be chosen from More...
 

Functions

template<typename ItValue , typename ItFunction >
void TMVA::DNN::applyFunctions (ItValue itValue, ItValue itValueEnd, ItFunction itFunction)
 
template<typename ItValue , typename ItFunction , typename ItInverseFunction , typename ItGradient >
void TMVA::DNN::applyFunctions (ItValue itValue, ItValue itValueEnd, ItFunction itFunction, ItInverseFunction itInverseFunction, ItGradient itGradient)
 
template<typename ItSource , typename ItWeight , typename ItTarget >
void TMVA::DNN::applyWeights (ItSource itSourceBegin, ItSource itSourceEnd, ItWeight itWeight, ItTarget itTargetBegin, ItTarget itTargetEnd)
 
template<typename ItSource , typename ItWeight , typename ItPrev >
void TMVA::DNN::applyWeightsBackwards (ItSource itCurrBegin, ItSource itCurrEnd, ItWeight itWeight, ItPrev itPrevBegin, ItPrev itPrevEnd)
 
template<typename LAYERDATA >
void TMVA::DNN::backward (LAYERDATA &prevLayerData, LAYERDATA &currLayerData)
 backward application of the weights (back-propagation of the error) More...
 
template<typename ItProbability , typename ItTruth , typename ItDelta , typename ItInvActFnc >
double TMVA::DNN::crossEntropy (ItProbability itProbabilityBegin, ItProbability itProbabilityEnd, ItTruth itTruthBegin, ItTruth, ItDelta itDelta, ItDelta itDeltaEnd, ItInvActFnc, double patternWeight)
 cross entropy error function More...
 
template<typename LAYERDATA >
void TMVA::DNN::forward (const LAYERDATA &prevLayerData, LAYERDATA &currLayerData)
 apply the weights (and functions) in forward direction of the DNN More...
 
double TMVA::DNN::gaussDouble (double mean, double sigma)
 
template<typename T >
bool TMVA::DNN::isFlagSet (T flag, T value)
 
ModeOutputValues TMVA::DNN::operator & (ModeOutputValues lhs, ModeOutputValues rhs)
 
ModeOutputValues TMVA::DNN::operator &= (ModeOutputValues &lhs, ModeOutputValues rhs)
 
ModeOutputValues TMVA::DNN::operator| (ModeOutputValues lhs, ModeOutputValues rhs)
 
ModeOutputValues TMVA::DNN::operator|= (ModeOutputValues &lhs, ModeOutputValues rhs)
 
int TMVA::DNN::randomInt (int maxValue)
 
template<typename ItOutput , typename ItTruth , typename ItDelta , typename ItInvActFnc >
double TMVA::DNN::softMaxCrossEntropy (ItOutput itProbabilityBegin, ItOutput itProbabilityEnd, ItTruth itTruthBegin, ItTruth, ItDelta itDelta, ItDelta itDeltaEnd, ItInvActFnc, double patternWeight)
 soft-max-cross-entropy error function (for mutual exclusive cross-entropy) More...
 
template<typename ItOutput , typename ItTruth , typename ItDelta , typename ItInvActFnc >
double TMVA::DNN::sumOfSquares (ItOutput itOutputBegin, ItOutput itOutputEnd, ItTruth itTruthBegin, ItTruth itTruthEnd, ItDelta itDelta, ItDelta itDeltaEnd, ItInvActFnc itInvActFnc, double patternWeight)
 
double TMVA::DNN::uniformDouble (double minValue, double maxValue)
 
template<typename ItSource , typename ItDelta , typename ItTargetGradient , typename ItGradient >
void TMVA::DNN::update (ItSource itSource, ItSource itSourceEnd, ItDelta itTargetDeltaBegin, ItDelta itTargetDeltaEnd, ItTargetGradient itTargetGradientBegin, ItGradient itGradient)
 update the gradients More...
 
template<EnumRegularization Regularization, typename ItSource , typename ItDelta , typename ItTargetGradient , typename ItGradient , typename ItWeight >
void TMVA::DNN::update (ItSource itSource, ItSource itSourceEnd, ItDelta itTargetDeltaBegin, ItDelta itTargetDeltaEnd, ItTargetGradient itTargetGradientBegin, ItGradient itGradient, ItWeight itWeight, double weightDecay)
 update the gradients, using regularization More...
 
template<typename LAYERDATA >
void TMVA::DNN::update (const LAYERDATA &prevLayerData, LAYERDATA &currLayerData, double factorWeightDecay, EnumRegularization regularization)
 update the node values More...
 
template<typename ItWeight >
double TMVA::DNN::weightDecay (double error, ItWeight itWeight, ItWeight itWeightEnd, double factorWeightDecay, EnumRegularization eRegularization)
 compute the weight decay for regularization (L1 or L2) More...