[mlpack-git] master: Fix #400 -- remove unneeded specializations. Also, refactor LoadParameter(arma::mat&) because you can't just empty streams into them (maybe this should change?). (abdfa0b)

gitdub at big.cc.gt.atl.ga.us gitdub at big.cc.gt.atl.ga.us
Fri Feb 6 16:43:42 EST 2015


Repository : https://github.com/mlpack/mlpack

On branch  : master
Link       : https://github.com/mlpack/mlpack/compare/dd5d265ac1897b96cc7e98778557a1361415d509...abdfa0b989940f82b799d6afa1a3861afbf991e7

>---------------------------------------------------------------

commit abdfa0b989940f82b799d6afa1a3861afbf991e7
Author: Ryan Curtin <ryan at ratml.org>
Date:   Fri Feb 6 16:42:45 2015 -0500

    Fix #400 -- remove unneeded specializations.
    Also, refactor LoadParameter(arma::mat&) because you can't just empty streams into them (maybe this should change?).


>---------------------------------------------------------------

abdfa0b989940f82b799d6afa1a3861afbf991e7
 src/mlpack/core/util/save_restore_utility.cpp | 71 +--------------------------
 src/mlpack/core/util/save_restore_utility.hpp | 11 -----
 2 files changed, 2 insertions(+), 80 deletions(-)

diff --git a/src/mlpack/core/util/save_restore_utility.cpp b/src/mlpack/core/util/save_restore_utility.cpp
index 2c0435f..b294773 100644
--- a/src/mlpack/core/util/save_restore_utility.cpp
+++ b/src/mlpack/core/util/save_restore_utility.cpp
@@ -85,51 +85,8 @@ arma::mat& SaveRestoreUtility::LoadParameter(arma::mat& matrix,
   std::map<std::string, std::string>::const_iterator it = parameters.find(name);
   if (it != parameters.end())
   {
-    std::string value = (*it).second;
-    boost::char_separator<char> sep ("\n");
-    boost::tokenizer<boost::char_separator<char> > tok (value, sep);
-    std::list<std::list<double> > rows;
-    for (boost::tokenizer<boost::char_separator<char> >::iterator
-           tokIt = tok.begin();
-         tokIt != tok.end();
-         ++tokIt)
-    {
-      std::string row = *tokIt;
-      boost::char_separator<char> sepComma (",");
-      boost::tokenizer<boost::char_separator<char> >
-        tokInner (row, sepComma);
-      std::list<double> rowList;
-      for (boost::tokenizer<boost::char_separator<char> >::iterator
-             tokInnerIt = tokInner.begin();
-             tokInnerIt != tokInner.end();
-             ++tokInnerIt)
-      {
-        double element;
-        std::istringstream iss (*tokInnerIt);
-        iss >> element;
-        rowList.push_back(element);
-      }
-      rows.push_back(rowList);
-    }
-    matrix.zeros(rows.size(), (*(rows.begin())).size());
-    size_t rowCounter = 0;
-    size_t columnCounter = 0;
-    for (std::list<std::list<double> >::iterator rowIt = rows.begin();
-         rowIt != rows.end();
-         ++rowIt)
-    {
-      std::list<double> row = *rowIt;
-      columnCounter = 0;
-      for (std::list<double>::iterator elementIt = row.begin();
-           elementIt != row.end();
-           ++elementIt)
-      {
-        matrix(rowCounter, columnCounter) = *elementIt;
-        columnCounter++;
-      }
-      rowCounter++;
-    }
-    return matrix;
+    std::istringstream input((*it).second);
+    matrix.load(input);
   }
   else
   {
@@ -179,23 +136,6 @@ void SaveRestoreUtility::SaveParameter(const char c, const std::string& name)
   parameters[name] = output.str();
 }
 
-void SaveRestoreUtility::SaveParameter(const arma::mat& mat,
-                                       const std::string& name)
-{
-  std::ostringstream output;
-  size_t columns = mat.n_cols;
-  size_t rows = mat.n_rows;
-  for (size_t r = 0; r < rows; ++r)
-  {
-    for (size_t c = 0; c < columns - 1; ++c)
-    {
-      output << std::setprecision(15) << mat(r, c) << ",";
-    }
-    output << std::setprecision(15) << mat(r, columns - 1) << std::endl;
-  }
-  parameters[name] = output.str();
-}
-
 // Special template specializations for vectors.
 
 namespace mlpack {
@@ -208,13 +148,6 @@ arma::vec& SaveRestoreUtility::LoadParameter(arma::vec& t,
   return (arma::vec&) LoadParameter((arma::mat&) t, name);
 }
 
-template<>
-void SaveRestoreUtility::SaveParameter(const arma::vec& t,
-                                       const std::string& name)
-{
-  SaveParameter((const arma::mat&) t, name);
-}
-
 void SaveRestoreUtility::AddChild(SaveRestoreUtility& mn, const std::string&
     name)
 {
diff --git a/src/mlpack/core/util/save_restore_utility.hpp b/src/mlpack/core/util/save_restore_utility.hpp
index 7a68cb1..9a30822 100644
--- a/src/mlpack/core/util/save_restore_utility.hpp
+++ b/src/mlpack/core/util/save_restore_utility.hpp
@@ -104,11 +104,6 @@ class SaveRestoreUtility
   void SaveParameter(const char c, const std::string& name);
 
   /**
-   * SaveParameter saves an arma::mat to the parameters map.
-   */
-  void SaveParameter(const arma::mat& mat, const std::string& name);
-
-  /**
    * SaveSubModel saves a SaveRestoreUtility to the children map.
    */
   void AddChild(SaveRestoreUtility& mn, const std::string& name);
@@ -141,12 +136,6 @@ template<>
 arma::vec& SaveRestoreUtility::LoadParameter(arma::vec& t,
                                              const std::string& name) const;
 
-//! Specialization for arma::vec.
-template<>
-void SaveRestoreUtility::SaveParameter(const arma::vec& t,
-                                       const std::string& name);
-
-
 
 }; /* namespace util */
 }; /* namespace mlpack */



More information about the mlpack-git mailing list