[mlpack-svn] [MLPACK] #271: SaveRestoreUtility and hierarchical model support

MLPACK Trac trac at coffeetalk-1.cc.gatech.edu
Wed Apr 3 15:32:17 EDT 2013

#271: SaveRestoreUtility and hierarchical model support
 Reporter:  rcurtin      |        Owner:                                                                 
     Type:  enhancement  |       Status:  new                                                            
 Priority:  major        |    Milestone:  mlpack 1.1.0                                                   
Component:  mlpack       |     Keywords:  xml, saverestoreutility, hierarchical models, load, save, model
 Blocking:               |   Blocked By:                                                                 
 Currently the SaveRestoreUtility does a great job of loading elements from
 XML files as long as you have the full path to the object.  But suppose we
 have some HMM with Gaussian emissions:

     <mean> ... </mean>
     <covariance> ... </covariance>
     <mean> ... </mean>
     <covariance> ... </covariance>
   <transition> ... </transition>

 Each emission contains exactly what GaussianDistribution::Save() (which is
 not yet written) would output into a file.  So HMM::Save() should
 internally use GaussianDistribution::Save() (and HMM::Load() should
 internally use GaussianDistribution::Load()) but that means that we need
 to have some XMLNode class (or something similar) so that we can do
 something like

 HMM<GaussianDistribution>::Load(XMLNode& node)
   node.LoadParameter(transition, "transition");
   size_t numEmissions;
   node.LoadParameter(numEmissions, "emissions");

   emissions.resize(numEmissions, GaussianDistribution(dimensionality));
   for (size_t i = 0; i < numEmissions; ++i)
     emissions[i].Load("emission" + i); // yes, this is just psuedocode

 Neil, I cc'ed you on this ticket in case you have any ideas (feel free to
 remove yourself).  I think it should be a fairly simple refactoring.  I
 also think maybe it should be 'ModelNode' not 'XMLNode' so that we can
 later load things that aren't XML.

Ticket URL: <http://trac.research.cc.gatech.edu/fastlab/ticket/271>
MLPACK <www.fast-lab.org>
MLPACK is an intuitive, fast, and scalable C++ machine learning library developed by the FASTLAB at Georgia Tech under Dr. Alex Gray.

More information about the mlpack-svn mailing list