[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