[mlpack-svn] r13218 - mlpack/trunk/src/mlpack/methods/local_coordinate_coding
fastlab-svn at coffeetalk-1.cc.gatech.edu
fastlab-svn at coffeetalk-1.cc.gatech.edu
Thu Jul 12 10:52:45 EDT 2012
Author: rcurtin
Date: 2012-07-12 10:52:45 -0400 (Thu, 12 Jul 2012)
New Revision: 13218
Modified:
mlpack/trunk/src/mlpack/methods/local_coordinate_coding/lcc.hpp
mlpack/trunk/src/mlpack/methods/local_coordinate_coding/lcc_impl.hpp
Log:
Make objective tolerance parameterizable.
Modified: mlpack/trunk/src/mlpack/methods/local_coordinate_coding/lcc.hpp
===================================================================
--- mlpack/trunk/src/mlpack/methods/local_coordinate_coding/lcc.hpp 2012-07-12 14:46:11 UTC (rev 13217)
+++ mlpack/trunk/src/mlpack/methods/local_coordinate_coding/lcc.hpp 2012-07-12 14:52:45 UTC (rev 13218)
@@ -90,9 +90,13 @@
/**
* Run local coordinate coding.
*
- * @param nIterations Maximum number of iterations to run algorithm
+ * @param nIterations Maximum number of iterations to run algorithm.
+ * @param objTolerance Tolerance of objective function. When the objective
+ * function changes by a value lower than this tolerance, the optimization
+ * terminates.
*/
- void Encode(const size_t maxIterations = 0);
+ void Encode(const size_t maxIterations = 0,
+ const double objTolerance = 0.01);
/**
* Code each point via distance-weighted LARS.
Modified: mlpack/trunk/src/mlpack/methods/local_coordinate_coding/lcc_impl.hpp
===================================================================
--- mlpack/trunk/src/mlpack/methods/local_coordinate_coding/lcc_impl.hpp 2012-07-12 14:46:11 UTC (rev 13217)
+++ mlpack/trunk/src/mlpack/methods/local_coordinate_coding/lcc_impl.hpp 2012-07-12 14:52:45 UTC (rev 13218)
@@ -10,8 +10,6 @@
// In case it hasn't been included yet.
#include "lcc.hpp"
-#define OBJ_TOL 1e-2 // 1E-9
-
namespace mlpack {
namespace lcc {
@@ -31,7 +29,8 @@
template<typename DictionaryInitializer>
void LocalCoordinateCoding<DictionaryInitializer>::Encode(
- const size_t maxIterations)
+ const size_t maxIterations,
+ const double objTolerance)
{
Timer::Start("local_coordinate_coding");
@@ -83,9 +82,9 @@
Log::Info << "Objective value: " << curObjVal << " (improvement "
<< std::scientific << improvement << ")." << std::endl;
- if (improvement < OBJ_TOL)
+ if (improvement < objTolerance)
{
- Log::Info << "Converged within tolerance " << OBJ_TOL << ".\n";
+ Log::Info << "Converged within tolerance " << objTolerance << ".\n";
break;
}
More information about the mlpack-svn
mailing list