cMHN 1.2
C++ library for learning MHNs with pRC
Loading...
Searching...
No Matches
cMHN::Regulator< T, D > Class Template Reference

Class storing all relevant information for a regulator. More...

#include <regulator.hpp>

Inheritance diagram for cMHN::Regulator< T, D >:
cMHN::L1Regulator< T, D > cMHN::L2Regulator< T, D >

Public Member Functions

 ~Regulator ()=default
 
 Regulator (Regulator const &)=default
 
 Regulator (Regulator &&)=default
 
Regulatoroperator= (Regulator const &) &=default
 
Regulatoroperator= (Regulator &&) &=default
 
 Regulator ()=delete
 
 Regulator (auto const &score, auto const &grad, auto const &name, auto const &lambda=T(1e-2))
 
auto score (pRC::Tensor< T, D, D > const &theta) const
 
auto grad (pRC::Tensor< T, D, D > const &theta) const
 
auto & lambda ()
 
auto const lambda () const
 
auto name () const
 

Detailed Description

template<class T, pRC::Size D>
class cMHN::Regulator< T, D >

Class storing all relevant information for a regulator.

Member functions score(theta) and grad(theta) return the score and the gradient wrt the entries of the theta matrix. The member function name() accesses the name given to the regulator. The member function lambda() can be used to get and set the regularization strength.

Note that the lambda functions accessed through score() and grad(), as well as the regulators name accessed through name() can not be changed, only the regularization strength can be changed.

Template Parameters
Ttype used for calculations
Dnumber of events of the dataset

Constructor & Destructor Documentation

◆ ~Regulator()

template<class T , pRC::Size D>
cMHN::Regulator< T, D >::~Regulator ( )
default

◆ Regulator() [1/4]

template<class T , pRC::Size D>
cMHN::Regulator< T, D >::Regulator ( Regulator< T, D > const & )
default

◆ Regulator() [2/4]

template<class T , pRC::Size D>
cMHN::Regulator< T, D >::Regulator ( Regulator< T, D > && )
default

◆ Regulator() [3/4]

template<class T , pRC::Size D>
cMHN::Regulator< T, D >::Regulator ( )
delete

◆ Regulator() [4/4]

template<class T , pRC::Size D>
cMHN::Regulator< T, D >::Regulator ( auto const & score,
auto const & grad,
auto const & name,
auto const & lambda = T(1e-2) )
inlineexplicit

Member Function Documentation

◆ grad()

template<class T , pRC::Size D>
auto cMHN::Regulator< T, D >::grad ( pRC::Tensor< T, D, D > const & theta) const
inline

◆ lambda() [1/2]

template<class T , pRC::Size D>
auto & cMHN::Regulator< T, D >::lambda ( )
inline

◆ lambda() [2/2]

template<class T , pRC::Size D>
auto const cMHN::Regulator< T, D >::lambda ( ) const
inline

◆ name()

template<class T , pRC::Size D>
auto cMHN::Regulator< T, D >::name ( ) const
inline

◆ operator=() [1/2]

template<class T , pRC::Size D>
Regulator & cMHN::Regulator< T, D >::operator= ( Regulator< T, D > && ) &
default

◆ operator=() [2/2]

template<class T , pRC::Size D>
Regulator & cMHN::Regulator< T, D >::operator= ( Regulator< T, D > const & ) &
default

◆ score()

template<class T , pRC::Size D>
auto cMHN::Regulator< T, D >::score ( pRC::Tensor< T, D, D > const & theta) const
inline

The documentation for this class was generated from the following file: