[mlpack-git] master: Improve reverse compatibility of NSModel. (2698225)
gitdub at mlpack.org
gitdub at mlpack.org
Wed Aug 17 14:32:33 EDT 2016
Repository : https://github.com/mlpack/mlpack
On branch : master
Link : https://github.com/mlpack/mlpack/compare/0f4b25acd6aaa14294c044874ba6cc0751712baa...0a19d07bd39e6223991976474bc79671ba8aa0f0
>---------------------------------------------------------------
commit 2698225eabde8bf2022d62209b965509d3207f73
Author: MarcosPividori <marcos.pividori at gmail.com>
Date: Wed Aug 17 15:32:33 2016 -0300
Improve reverse compatibility of NSModel.
>---------------------------------------------------------------
2698225eabde8bf2022d62209b965509d3207f73
src/mlpack/methods/neighbor_search/ns_model.hpp | 4 ++++
src/mlpack/methods/neighbor_search/ns_model_impl.hpp | 14 +++++++++-----
2 files changed, 13 insertions(+), 5 deletions(-)
diff --git a/src/mlpack/methods/neighbor_search/ns_model.hpp b/src/mlpack/methods/neighbor_search/ns_model.hpp
index 9398aa1..e1606e9 100644
--- a/src/mlpack/methods/neighbor_search/ns_model.hpp
+++ b/src/mlpack/methods/neighbor_search/ns_model.hpp
@@ -395,6 +395,10 @@ class NSModel
} // namespace neighbor
} // namespace mlpack
+//! Set the serialization version of the NSModel class.
+BOOST_TEMPLATE_CLASS_VERSION(template<typename SortPolicy>,
+ mlpack::neighbor::NSModel<SortPolicy>, 1);
+
// Include implementation.
#include "ns_model_impl.hpp"
diff --git a/src/mlpack/methods/neighbor_search/ns_model_impl.hpp b/src/mlpack/methods/neighbor_search/ns_model_impl.hpp
index 79c8772..e0d152b 100644
--- a/src/mlpack/methods/neighbor_search/ns_model_impl.hpp
+++ b/src/mlpack/methods/neighbor_search/ns_model_impl.hpp
@@ -313,13 +313,17 @@ void serialize(Archive& ar, NSSpillType& ns, const unsigned int version)
//! Serialize the kNN model.
template<typename SortPolicy>
template<typename Archive>
-void NSModel<SortPolicy>::Serialize(Archive& ar,
- const unsigned int /* version */)
+void NSModel<SortPolicy>::Serialize(Archive& ar, const unsigned int version)
{
ar & data::CreateNVP(treeType, "treeType");
- ar & data::CreateNVP(leafSize, "leafSize");
- ar & data::CreateNVP(tau, "tau");
- ar & data::CreateNVP(rho, "rho");
+ // Backward compatibility: older versions of NSModel didn't include these
+ // parameters.
+ if (version > 0)
+ {
+ ar & data::CreateNVP(leafSize, "leafSize");
+ ar & data::CreateNVP(tau, "tau");
+ ar & data::CreateNVP(rho, "rho");
+ }
ar & data::CreateNVP(randomBasis, "randomBasis");
ar & data::CreateNVP(q, "q");
More information about the mlpack-git
mailing list