[mlpack-git] master: Fix a bug. And LastUpperBound() doesn't work. The bugfix speeds thigns up, too. (51e14ec)
gitdub at big.cc.gt.atl.ga.us
gitdub at big.cc.gt.atl.ga.us
Thu Mar 12 16:04:58 EDT 2015
Repository : https://github.com/mlpack/mlpack
On branch : master
Link : https://github.com/mlpack/mlpack/compare/eddd7167d69b6c88b271ef2e51d1c20e13f1acd8...70342dd8e5c17e0c164cfb8189748671e9c0dd44
>---------------------------------------------------------------
commit 51e14ecf1a364bbedfd1e72f95612e2b78e6eaa6
Author: Ryan Curtin <ryan at ratml.org>
Date: Tue Feb 17 17:00:56 2015 -0500
Fix a bug. And LastUpperBound() doesn't work. The bugfix speeds thigns up, too.
>---------------------------------------------------------------
51e14ecf1a364bbedfd1e72f95612e2b78e6eaa6
src/mlpack/methods/kmeans/dtnn_kmeans_impl.hpp | 2 +-
src/mlpack/methods/kmeans/dtnn_rules_impl.hpp | 3 +--
src/mlpack/methods/kmeans/dtnn_statistic.hpp | 7 -------
3 files changed, 2 insertions(+), 10 deletions(-)
diff --git a/src/mlpack/methods/kmeans/dtnn_kmeans_impl.hpp b/src/mlpack/methods/kmeans/dtnn_kmeans_impl.hpp
index ddf7c43..4f5377c 100644
--- a/src/mlpack/methods/kmeans/dtnn_kmeans_impl.hpp
+++ b/src/mlpack/methods/kmeans/dtnn_kmeans_impl.hpp
@@ -204,7 +204,7 @@ void DTNNKMeans<MetricType, MatType, TreeType>::UpdateTree(
{
node.Stat().UpperBound() = DBL_MAX;
node.Stat().LowerBound() = DBL_MAX;
- node.Stat().Pruned() = 0;
+ node.Stat().Pruned() = size_t(-1);
node.Stat().Owner() = clusterDistances.n_elem - 1;
node.Stat().StaticPruned() = false;
}
diff --git a/src/mlpack/methods/kmeans/dtnn_rules_impl.hpp b/src/mlpack/methods/kmeans/dtnn_rules_impl.hpp
index 26e549a..195cd1a 100644
--- a/src/mlpack/methods/kmeans/dtnn_rules_impl.hpp
+++ b/src/mlpack/methods/kmeans/dtnn_rules_impl.hpp
@@ -107,8 +107,7 @@ inline double DTNNKMeansRules<MetricType, TreeType>::Score(
math::Range distances = queryNode.RangeDistance(&referenceNode);
double score = distances.Lo();
++scores;
- if (distances.Lo() > queryNode.Stat().UpperBound() ||
- distances.Lo() > queryNode.Stat().LastUpperBound())
+ if (distances.Lo() > queryNode.Stat().UpperBound())
{
// The reference node can own no points in this query node. We may improve
// the lower bound on pruned nodes, though.
diff --git a/src/mlpack/methods/kmeans/dtnn_statistic.hpp b/src/mlpack/methods/kmeans/dtnn_statistic.hpp
index e549afe..82e02c1 100644
--- a/src/mlpack/methods/kmeans/dtnn_statistic.hpp
+++ b/src/mlpack/methods/kmeans/dtnn_statistic.hpp
@@ -20,7 +20,6 @@ class DTNNStatistic : public
neighbor::NeighborSearchStat<neighbor::NearestNeighborSort>(),
upperBound(DBL_MAX),
lowerBound(DBL_MAX),
- lastUpperBound(DBL_MAX),
owner(size_t(-1)),
pruned(size_t(-1)),
staticPruned(false),
@@ -34,7 +33,6 @@ class DTNNStatistic : public
neighbor::NeighborSearchStat<neighbor::NearestNeighborSort>(),
upperBound(DBL_MAX),
lowerBound(DBL_MAX),
- lastUpperBound(DBL_MAX),
owner(size_t(-1)),
pruned(size_t(-1)),
staticPruned(false)
@@ -57,9 +55,6 @@ class DTNNStatistic : public
double LowerBound() const { return lowerBound; }
double& LowerBound() { return lowerBound; }
- double LastUpperBound() const { return lastUpperBound; }
- double& LastUpperBound() { return lastUpperBound; }
-
const arma::vec& Centroid() const { return centroid; }
arma::vec& Centroid() { return centroid; }
@@ -78,7 +73,6 @@ class DTNNStatistic : public
o << "DTNNStatistic [" << this << "]:\n";
o << " Upper bound: " << upperBound << ".\n";
o << " Lower bound: " << lowerBound << ".\n";
- o << " Last upper bound: " << lastUpperBound << ".\n";
o << " Pruned: " << pruned << ".\n";
o << " Static pruned: " << staticPruned << ".\n";
o << " Owner: " << owner << ".\n";
@@ -88,7 +82,6 @@ class DTNNStatistic : public
private:
double upperBound;
double lowerBound;
- double lastUpperBound;
size_t owner;
size_t pruned;
bool staticPruned;
More information about the mlpack-git
mailing list