[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