[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