[mlpack] 93/207: Fix serialization.

Barak A. Pearlmutter barak+git at pearlmutter.net
Thu Mar 23 17:53:43 UTC 2017


This is an automated email from the git hooks/post-receive script.

bap pushed a commit to branch master
in repository mlpack.

commit effe15dcfe87a1a935f9d7826ff8f7bd209db0fa
Author: Ryan Curtin <ryan at ratml.org>
Date:   Sun Feb 26 22:40:31 2017 -0500

    Fix serialization.
---
 src/mlpack/core/dists/discrete_distribution.hpp | 20 ++++++++++++++++++--
 1 file changed, 18 insertions(+), 2 deletions(-)

diff --git a/src/mlpack/core/dists/discrete_distribution.hpp b/src/mlpack/core/dists/discrete_distribution.hpp
index f3ccded..3171791 100644
--- a/src/mlpack/core/dists/discrete_distribution.hpp
+++ b/src/mlpack/core/dists/discrete_distribution.hpp
@@ -205,8 +205,24 @@ class DiscreteDistribution
   template<typename Archive>
   void Serialize(Archive& ar, const unsigned int /* version */)
   {
-    // We only need to save the probabilities, since that's all we hold.
-    ar & data::CreateNVP(probabilities, "probabilities");
+    // We serialize the vector manually since there seem to be some problems
+    // with some boost versions.
+    size_t dimensionality;
+    dimensionality = probabilities.size();
+    ar & data::CreateNVP(dimensionality, "dimensionality");
+
+    if (Archive::is_loading::value)
+    {
+      probabilities.clear();
+      probabilities.resize(dimensionality);
+    }
+
+    for (size_t i = 0; i < dimensionality; ++i)
+    {
+      std::ostringstream oss;
+      oss << "probabilities" << i;
+      ar & data::CreateNVP(probabilities[i], oss.str());
+    }
   }
 
  private:

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/mlpack.git



More information about the debian-science-commits mailing list