[mlpack-svn] r16951 - mlpack/trunk/src/mlpack/core/util
fastlab-svn at coffeetalk-1.cc.gatech.edu
fastlab-svn at coffeetalk-1.cc.gatech.edu
Tue Aug 5 09:11:32 EDT 2014
Author: michaelfox99
Date: Tue Aug 5 09:11:31 2014
New Revision: 16951
Log:
Hierarchical model support
Modified:
mlpack/trunk/src/mlpack/core/util/save_restore_utility.hpp
Modified: mlpack/trunk/src/mlpack/core/util/save_restore_utility.hpp
==============================================================================
--- mlpack/trunk/src/mlpack/core/util/save_restore_utility.hpp (original)
+++ mlpack/trunk/src/mlpack/core/util/save_restore_utility.hpp Tue Aug 5 09:11:31 2014
@@ -33,11 +33,18 @@
std::map<std::string, std::string> parameters;
/**
+ * children contains a list of names in string format and child
+ * models in the model hierarchy in SaveRestoreUtility format
+ */
+ std::map<std::string, SaveRestoreUtility> children;
+
+ /**
* RecurseOnNodes performs a depth first search of the XML tree.
*/
void RecurseOnNodes(xmlNode* n);
public:
+
SaveRestoreUtility() {}
~SaveRestoreUtility() { parameters.clear(); }
@@ -45,6 +52,7 @@
* ReadFile reads an XML tree from a file.
*/
bool ReadFile(const std::string& filename);
+ void ReadFile(xmlNode* n);
/**
* WriteFile writes the XML tree to a file.
@@ -55,28 +63,29 @@
* LoadParameter loads a parameter from the parameters map.
*/
template<typename T>
- T& LoadParameter(T& t, const std::string& name);
+ T& LoadParameter(T& t, const std::string& name) const;
/**
* LoadParameter loads a parameter from the parameters map.
*/
template<typename T>
- std::vector<T>& LoadParameter(std::vector<T>& v, const std::string& name);
+ std::vector<T>& LoadParameter(std::vector<T>& v, const std::string& name)
+ const;
/**
* LoadParameter loads a character from the parameters map.
*/
- char LoadParameter(char c, const std::string& name);
+ char LoadParameter(char c, const std::string& name) const;
/**
* LoadParameter loads a string from the parameters map.
*/
- std::string LoadParameter(std::string& str, const std::string& name);
+ std::string LoadParameter(std::string& str, const std::string& name) const;
/**
* LoadParameter loads an arma::mat from the parameters map.
*/
- arma::mat& LoadParameter(arma::mat& matrix, const std::string& name);
+ arma::mat& LoadParameter(arma::mat& matrix, const std::string& name) const;
/**
* SaveParameter saves a parameter to the parameters map.
@@ -84,8 +93,6 @@
template<typename T>
void SaveParameter(const T& t, const std::string& name);
-
-
/**
* SaveParameter saves a parameter to the parameters map.
*/
@@ -101,18 +108,43 @@
* 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);
+
+ /**
+ * Return the children.
+ */
+ const std::map<std::string, SaveRestoreUtility> Children() const { return
+ children; }
+
+ /**
+ * Return modifiable copy of the children.
+ */
+ std::map<std::string, SaveRestoreUtility> Children() { return children; }
+
+ private:
+ /**
+ * WriteFile creates XML tree recursively.
+ */
+ void WriteFile(xmlNode* n);
+
};
//! Specialization for arma::vec.
template<>
arma::vec& SaveRestoreUtility::LoadParameter(arma::vec& t,
- const std::string& name);
+ 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-svn
mailing list