12 #ifndef _MLPACK_METHODS_AMF_INCOMPLETE_INCREMENTAL_TERMINATION_HPP
13 #define _MLPACK_METHODS_AMF_INCOMPLETE_INCREMENTAL_TERMINATION_HPP
27 template <
class TerminationPolicy>
37 TerminationPolicy tPolicy = TerminationPolicy()) :
45 template<
class MatType>
48 tPolicy.Initialize(V);
51 incrementalIndex = V.n_rows;
68 if (iteration % incrementalIndex == 0)
69 return tPolicy.IsConverged(W, H);
75 const double&
Index()
const {
return tPolicy.Index(); }
78 const size_t&
Iteration()
const {
return iteration; }
86 const TerminationPolicy&
TPolicy()
const {
return tPolicy; }
88 TerminationPolicy&
TPolicy() {
return tPolicy; }
92 TerminationPolicy tPolicy;
95 size_t incrementalIndex;
const TerminationPolicy & TPolicy() const
Access the wrapped termination policy.
size_t & MaxIterations()
Modify maximum number of iterations.
size_t MaxIterations() const
Access maximum number of iterations.
bool IsConverged(arma::mat &W, arma::mat &H)
Check if termination criterio is met.
TerminationPolicy & TPolicy()
Modify the wrapped termination policy.
The core includes that mlpack expects; standard C++ includes and Armadillo.
IncompleteIncrementalTermination(TerminationPolicy tPolicy=TerminationPolicy())
Empty constructor.
This class acts as a wrapper for basic termination policies to be used by SVDIncompleteIncrementalLea...
const size_t & Iteration() const
Get current iteration count.
const double & Index() const
Get current value of residue.
void Initialize(const MatType &V)
Initializes the termination policy before stating the factorization.