[mlpack-git] master: Implemented Save, Load for hierarchical model support (20c6a5b)
gitdub at big.cc.gt.atl.ga.us
gitdub at big.cc.gt.atl.ga.us
Thu Mar 5 21:56:31 EST 2015
Repository : https://github.com/mlpack/mlpack
On branch : master
Link : https://github.com/mlpack/mlpack/compare/904762495c039e345beba14c1142fd719b3bd50e...f94823c800ad6f7266995c700b1b630d5ffdcf40
>---------------------------------------------------------------
commit 20c6a5b5d9d51cb08b54dacc4cab1ab627cd3007
Author: michaelfox99 <michaelfox99 at gmail.com>
Date: Tue Aug 5 13:32:56 2014 +0000
Implemented Save, Load for hierarchical model support
>---------------------------------------------------------------
20c6a5b5d9d51cb08b54dacc4cab1ab627cd3007
src/mlpack/methods/hmm/hmm_impl.hpp | 42 +++++++++++++++++++++++++++++++++++++
1 file changed, 42 insertions(+)
diff --git a/src/mlpack/methods/hmm/hmm_impl.hpp b/src/mlpack/methods/hmm/hmm_impl.hpp
index a8644f2..8d70346 100644
--- a/src/mlpack/methods/hmm/hmm_impl.hpp
+++ b/src/mlpack/methods/hmm/hmm_impl.hpp
@@ -2,6 +2,7 @@
* @file hmm_impl.hpp
* @author Ryan Curtin
* @author Tran Quoc Long
+ * @author Michael Fox
*
* Implementation of HMM class.
*/
@@ -522,6 +523,47 @@ std::string HMM<Distribution>::ToString() const
return convert.str();
}
+//! Save to SaveRestoreUtility
+template<typename Distribution>
+void HMM<Distribution>::Save(util::SaveRestoreUtility& sr) const
+{
+ // Save parameters.
+ sr.SaveParameter(Type(), "type");
+ sr.SaveParameter(Emission()[0].Type(), "emission_type");
+ sr.SaveParameter(dimensionality, "dimensionality");
+ sr.SaveParameter(transition.n_rows, "states");
+ sr.SaveParameter(transition, "transition");
+
+ // Now the emissions.
+ util::SaveRestoreUtility mn;
+ for (size_t i = 0; i < transition.n_rows; ++i)
+ {
+ // Generate name.
+ std::stringstream s;
+ s << "emission_distribution_" << i;
+ Emission()[i].Save(mn);
+ sr.AddChild(mn, s.str());
+ }
+}
+
+//! Load from SaveRestoreUtility
+template<typename Distribution>
+void HMM<Distribution>::Load(const util::SaveRestoreUtility& sr)
+{
+ // Load parameters.
+ sr.LoadParameter(dimensionality, "dimensionality");
+ sr.LoadParameter(transition, "transition");
+
+ // Now each emission distribution.
+ Emission().resize(transition.n_rows);
+ for (size_t i = 0; i < transition.n_rows; ++i)
+ {
+ std::stringstream s;
+ s << "emission_distribution_" << i;
+ Emission()[i].Load(sr.Children().at(s.str()));
+ }
+}
+
}; // namespace hmm
}; // namespace mlpack
More information about the mlpack-git
mailing list