|
template<typename Architecture_t > |
void | addRegularizationGradients (typename Architecture_t::Matrix_t &A, const typename Architecture_t::Matrix_t &W, typename Architecture_t::Scalar_t weightDecay, ERegularization R) |
| Add the regularization gradient corresponding to weight matrix W, to the matrix A. More...
|
|
template<typename ItValue , typename Fnc > |
void | applyFunctions (ItValue itValue, ItValue itValueEnd, Fnc fnc) |
| apply the activation functions More...
|
|
template<typename ItValue , typename Fnc , typename InvFnc , typename ItGradient > |
void | applyFunctions (ItValue itValue, ItValue itValueEnd, Fnc fnc, InvFnc invFnc, ItGradient itGradient) |
| apply the activation functions and compute the gradient More...
|
|
template<typename ItValue , typename ItFunction > |
void | applyFunctions (ItValue itValue, ItValue itValueEnd, ItFunction itFunction) |
|
template<typename ItValue , typename ItFunction , typename ItInverseFunction , typename ItGradient > |
void | applyFunctions (ItValue itValue, ItValue itValueEnd, ItFunction itFunction, ItInverseFunction itInverseFunction, ItGradient itGradient) |
|
template<typename AMatrix , typename F > |
void | applyMatrix (AMatrix &X, F f) |
| Apply functional to each element in the matrix. More...
|
|
template<bool HasDropOut, typename ItSource , typename ItWeight , typename ItTarget , typename ItDrop > |
void | applyWeights (ItSource itSourceBegin, ItSource itSourceEnd, ItWeight itWeight, ItTarget itTargetBegin, ItTarget itTargetEnd, ItDrop itDrop) |
| apply weights using drop-out; for no drop out, provide (&bool = true) to itDrop such that *itDrop becomes "true" More...
|
|
template<typename ItSource , typename ItWeight , typename ItTarget > |
void | applyWeights (ItSource itSourceBegin, ItSource itSourceEnd, ItWeight itWeight, ItTarget itTargetBegin, ItTarget itTargetEnd) |
|
template<bool HasDropOut, typename ItSource , typename ItWeight , typename ItPrev , typename ItDrop > |
void | applyWeightsBackwards (ItSource itCurrBegin, ItSource itCurrEnd, ItWeight itWeight, ItPrev itPrevBegin, ItPrev itPrevEnd, ItDrop itDrop) |
| apply weights backwards (for backprop); for no drop out, provide (&bool = true) to itDrop such that *itDrop becomes "true" More...
|
|
template<typename ItSource , typename ItWeight , typename ItPrev > |
void | applyWeightsBackwards (ItSource itCurrBegin, ItSource itCurrEnd, ItWeight itWeight, ItPrev itPrevBegin, ItPrev itPrevEnd) |
|
template<typename LAYERDATA > |
void | backward (LAYERDATA &prevLayerData, LAYERDATA &currLayerData) |
| backward application of the weights (back-propagation of the error) More...
|
|
template<EnumRegularization Regularization> |
double | computeRegularization (double weight, const double &factorWeightDecay) |
| compute the regularization (L1, L2) More...
|
|
template<> |
double | computeRegularization< EnumRegularization::L1 > (double weight, const double &factorWeightDecay) |
|
template<> |
double | computeRegularization< EnumRegularization::L2 > (double weight, const double &factorWeightDecay) |
|
template<typename AArchitecture > |
void | constructRandomLinearNet (TNet< AArchitecture > &net) |
| Construct a random linear neural network with up to five layers. More...
|
|
template<typename AMatrix > |
void | copyMatrix (AMatrix &X, const AMatrix &Y) |
| Generate a random batch as input for a neural net. More...
|
|
template<typename ItProbability , typename ItTruth , typename ItDelta , typename ItInvActFnc > |
double | crossEntropy (ItProbability itProbabilityBegin, ItProbability itProbabilityEnd, ItTruth itTruthBegin, ItTruth, ItDelta itDelta, ItDelta itDeltaEnd, ItInvActFnc, double patternWeight) |
| cross entropy error function More...
|
|
void | cudaError (cudaError_t code, const char *file, int line, bool abort=true) |
| Function to check cuda return code. More...
|
|
template<typename Architecture_t > |
void | evaluate (typename Architecture_t::Matrix_t &A, EActivationFunction f) |
| Apply the given activation function to each value in the given matrix A. More...
|
|
template<typename Architecture_t > |
void | evaluate (typename Architecture_t::Matrix_t &A, EOutputFunction f, const typename Architecture_t::Matrix_t &X) |
| Apply the given output function to each value in the given matrix A. More...
|
|
template<typename Architecture_t > |
auto | evaluate (ELossFunction f, const typename Architecture_t::Matrix_t &Y, const typename Architecture_t::Matrix_t &output) -> decltype(Architecture_t::CrossEntropy(Y, output)) |
| Compute the value of the objective function f for given activations of the ouput layer and the truth Y. More...
|
|
template<typename Architecture_t > |
void | evaluateDerivative (typename Architecture_t::Matrix_t &B, EActivationFunction f, const typename Architecture_t::Matrix_t &A) |
| Compute the first partial derivative of the activation function for the values given in matrix A and write the results into B. More...
|
|
template<typename Architecture_t > |
void | evaluateGradients (typename Architecture_t::Matrix_t &dY, ELossFunction f, const typename Architecture_t::Matrix_t &Y, const typename Architecture_t::Matrix_t &output) |
| Compute the gradient of the given output function f for given activations output of the output layer and truth Y and write the results into dY. More...
|
|
template<typename F , typename AFloat > |
AFloat | finiteDifference (F f, AFloat dx) |
| Numerically compute the derivative of the functional f using finite differences. More...
|
|
template<typename LAYERDATA > |
void | forward (const LAYERDATA &prevLayerData, LAYERDATA &currLayerData) |
| apply the weights (and functions) in forward direction of the DNN More...
|
|
double | gaussDouble (double mean, double sigma) |
|
template<typename AMatrix > |
void | identityMatrix (AMatrix &X) |
| Set matrix to the identity matrix. More...
|
|
template<typename Architecture_t > |
void | initialize (typename Architecture_t::Matrix_t &A, EInitialization m) |
|
template<typename T > |
bool | isFlagSet (T flag, T value) |
|
template<typename Matrix1 , typename Matrix2 > |
auto | maximumRelativeError (const Matrix1 &X, const Matrix2 &Y) -> decltype(X(0, 0)) |
| Compute the maximum, element-wise relative error of the matrices X and Y normalized by the element of Y. More...
|
|
ModeOutputValues | operator & (ModeOutputValues lhs, ModeOutputValues rhs) |
|
ModeOutputValues | operator &= (ModeOutputValues &lhs, ModeOutputValues rhs) |
|
ModeOutputValues | operator| (ModeOutputValues lhs, ModeOutputValues rhs) |
|
ModeOutputValues | operator|= (ModeOutputValues &lhs, ModeOutputValues rhs) |
|
template<typename AFloat > |
std::string | print_error (AFloat &e) |
| Color code error. More...
|
|
template<typename AMatrix > |
void | randomBatch (AMatrix &X) |
| Generate a random batch as input for a neural net. More...
|
|
int | randomInt (int maxValue) |
|
template<typename AMatrix > |
void | randomMatrix (AMatrix &X) |
| Fill matrix with random, Gaussian-distributed values. More...
|
|
template<typename AMatrix , typename AFloat , typename F > |
AFloat | reduce (F f, AFloat start, const AMatrix &X) |
| Generate a random batch as input for a neural net. More...
|
|
template<typename AMatrix , typename AFloat , typename F > |
AFloat | reduceMean (F f, AFloat start, const AMatrix &X) |
| Apply function to matrix element-wise and compute the mean of the resulting element values. More...
|
|
template<typename Architecture_t > |
auto | regularization (const typename Architecture_t::Matrix_t &A, ERegularization R) -> decltype(Architecture_t::L1Regularization(A)) |
| Evaluate the regularization functional for a given weight matrix. More...
|
|
template<typename T > |
T | relativeError (const T &x, const T &y) |
| Compute the relative error of x and y. More...
|
|
template<typename ItOutput , typename ItTruth , typename ItDelta , typename ItInvActFnc > |
double | 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...
|
|
double | studenttDouble (double distributionParameter) |
|
template<typename ItOutput , typename ItTruth , typename ItDelta , typename InvFnc > |
double | sumOfSquares (ItOutput itOutputBegin, ItOutput itOutputEnd, ItTruth itTruthBegin, ItTruth, ItDelta itDelta, ItDelta itDeltaEnd, InvFnc invFnc, double patternWeight) |
| sum of squares error function More...
|
|
template<typename ItOutput , typename ItTruth , typename ItDelta , typename ItInvActFnc > |
double | sumOfSquares (ItOutput itOutputBegin, ItOutput itOutputEnd, ItTruth itTruthBegin, ItTruth itTruthEnd, ItDelta itDelta, ItDelta itDeltaEnd, ItInvActFnc itInvActFnc, double patternWeight) |
|
template<typename Architecture_t > |
auto | testIdentity () -> typename Architecture_t::Scalar_t |
| Test the data loader by loading identical input and output data, running it through an identity neural network and computing the the mean squared error. More...
|
|
template<typename Architecture_t > |
auto | testSum () -> typename Architecture_t::Scalar_t |
| Test that the data loader loads all data in the data set by summing up all elements batch wise and comparing to the result over the complete data set. More...
|
|
template<typename Container , typename T > |
void | uniformDouble (Container &container, T maxValue) |
|
double | uniformDouble (double minValue, double maxValue) |
|
template<typename T > |
T | uniformFromTo (T from, T to) |
|
template<typename ItSource , typename ItDelta , typename ItTargetGradient , typename ItGradient > |
void | 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 | 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 | update (const LAYERDATA &prevLayerData, LAYERDATA &currLayerData, double factorWeightDecay, EnumRegularization regularization) |
| update the node values More...
|
|
template<typename ItWeight > |
double | weightDecay (double error, ItWeight itWeight, ItWeight itWeightEnd, double factorWeightDecay, EnumRegularization eRegularization) |
| compute the weight decay for regularization (L1 or L2) More...
|
|
template<typename AMatrix , typename F > |
void | zipWithMatrix (AMatrix &Z, F f, const AMatrix &X, const AMatrix &Y) |
| Combine elements of two given matrices into a single matrix using the given function f. More...
|
|
|
static std::shared_ptr< std::function< double(double)> > | Gauss = std::make_shared<std::function<double(double)>> ([](double value){ const double s = 6.0; return exp (-std::pow(value*s,2.0)); }) |
|
static std::shared_ptr< std::function< double(double)> > | GaussComplement = std::make_shared<std::function<double(double)>> ([](double value){ const double s = 6.0; return 1.0 - exp (-std::pow(value*s,2.0)); }) |
|
static std::shared_ptr< std::function< double(double)> > | InvGauss = std::make_shared<std::function<double(double)>> ([](double value){ const double s = 6.0; return -2.0 * value * s*s * (*Gauss.get ()) (value); }) |
|
static std::shared_ptr< std::function< double(double)> > | InvGaussComplement = std::make_shared<std::function<double(double)>> ([](double value){ const double s = 6.0; return +2.0 * value * s*s * (*GaussComplement.get ()) (value); }) |
|
static std::shared_ptr< std::function< double(double)> > | InvLinear = std::make_shared<std::function<double(double)>> ([](double ){ return 1.0; }) |
|
static std::shared_ptr< std::function< double(double)> > | InvReLU = std::make_shared<std::function<double(double)>> ([](double value){ const double margin = 0.0; return value > margin ? 1.0 : 0; }) |
|
static std::shared_ptr< std::function< double(double)> > | InvSigmoid = std::make_shared<std::function<double(double)>> ([](double value){ double s = (*Sigmoid.get ()) (value); return s*(1.0-s); }) |
|
static std::shared_ptr< std::function< double(double)> > | InvSoftPlus = std::make_shared<std::function<double(double)>> ([](double value){ return 1.0 / (1.0 + std::exp (-value)); }) |
|
static std::shared_ptr< std::function< double(double)> > | InvSoftSign = std::make_shared<std::function<double(double)>> ([](double value){ return std::pow ((1.0 - fabs (value)),2.0); }) |
|
static std::shared_ptr< std::function< double(double)> > | InvSymmReLU = std::make_shared<std::function<double(double)>> ([](double value){ const double margin = 0.3; return value > margin ? 1.0 : value < -margin ? 1.0 : 0; }) |
|
static std::shared_ptr< std::function< double(double)> > | InvTanh = std::make_shared<std::function<double(double)>> ([](double value){ return 1.0 - std::pow (value, 2.0); }) |
|
static std::shared_ptr< std::function< double(double)> > | InvTanhShift = std::make_shared<std::function<double(double)>> ([](double value){ return 0.3 + (1.0 - std::pow (value, 2.0)); }) |
|
static std::shared_ptr< std::function< double(double)> > | Linear = std::make_shared<std::function<double(double)>> ([](double value){ return value; }) |
|
static std::shared_ptr< std::function< double(double)> > | ReLU = std::make_shared<std::function<double(double)>> ([](double value){ const double margin = 0.0; return value > margin ? value-margin : 0; }) |
|
static std::shared_ptr< std::function< double(double)> > | Sigmoid = std::make_shared<std::function<double(double)>> ([](double value){ value = std::max (-100.0, std::min (100.0,value)); return 1.0/(1.0 + std::exp (-value)); }) |
|
static std::shared_ptr< std::function< double(double)> > | SoftPlus = std::make_shared<std::function<double(double)>> ([](double value){ return std::log (1.0+ std::exp (value)); }) |
|
static std::shared_ptr< std::function< double(double)> > | SoftSign = std::make_shared<std::function<double(double)>> ([](double value){ return value / (1.0 + fabs (value)); }) |
|
static std::shared_ptr< std::function< double(double)> > | SymmReLU = std::make_shared<std::function<double(double)>> ([](double value){ const double margin = 0.3; return value > margin ? value-margin : value < -margin ? value+margin : 0; }) |
|
static std::shared_ptr< std::function< double(double)> > | Tanh = std::make_shared<std::function<double(double)>> ([](double value){ return tanh (value); }) |
|
static std::shared_ptr< std::function< double(double)> > | TanhShift = std::make_shared<std::function<double(double)>> ([](double value){ return tanh (value-0.3); }) |
|
static std::shared_ptr< std::function< double(double)> > | ZeroFnc = std::make_shared<std::function<double(double)>> ([](double ){ return 0; }) |
|