[mlpack-git] master: Finish transition to Row<size_t> for labels. (cd5986e)
gitdub at big.cc.gt.atl.ga.us
gitdub at big.cc.gt.atl.ga.us
Mon Dec 14 20:17:14 EST 2015
Repository : https://github.com/mlpack/mlpack
On branch : master
Link : https://github.com/mlpack/mlpack/compare/714d6b7829b76fd8348b894a5eb5996a5380ba2a...cd5986e141b41781fdc13a9c89443f9be33b56bd
>---------------------------------------------------------------
commit cd5986e141b41781fdc13a9c89443f9be33b56bd
Author: Ryan Curtin <ryan at ratml.org>
Date: Mon Dec 14 20:16:32 2015 -0500
Finish transition to Row<size_t> for labels.
Fixes #333.
>---------------------------------------------------------------
cd5986e141b41781fdc13a9c89443f9be33b56bd
src/mlpack/methods/gmm/em_fit.hpp | 2 +-
src/mlpack/methods/gmm/em_fit_impl.hpp | 2 +-
src/mlpack/methods/gmm/gmm.hpp | 2 +-
src/mlpack/methods/gmm/gmm_impl.hpp | 2 +-
src/mlpack/methods/hmm/hmm.hpp | 8 ++---
src/mlpack/methods/hmm/hmm_generate_main.cpp | 4 +--
src/mlpack/methods/hmm/hmm_impl.hpp | 6 ++--
src/mlpack/methods/hmm/hmm_regression.hpp | 4 +--
src/mlpack/methods/hmm/hmm_regression_impl.hpp | 4 +--
src/mlpack/methods/hmm/hmm_train_main.cpp | 22 ++++++------
src/mlpack/methods/hmm/hmm_viterbi_main.cpp | 4 +--
src/mlpack/methods/kmeans/dual_tree_kmeans.hpp | 2 +-
.../methods/kmeans/dual_tree_kmeans_rules.hpp | 4 +--
.../methods/kmeans/dual_tree_kmeans_rules_impl.hpp | 2 +-
src/mlpack/methods/kmeans/kmeans.hpp | 14 ++++----
src/mlpack/methods/kmeans/kmeans_impl.hpp | 10 +++---
src/mlpack/methods/kmeans/kmeans_main.cpp | 13 ++++---
.../methods/kmeans/max_variance_new_cluster.hpp | 2 +-
src/mlpack/methods/kmeans/random_partition.hpp | 4 +--
src/mlpack/methods/kmeans/refined_start.hpp | 2 +-
src/mlpack/methods/kmeans/refined_start_impl.hpp | 4 +--
.../methods/naive_bayes/naive_bayes_classifier.hpp | 4 +--
src/mlpack/methods/nca/nca.hpp | 6 ++--
src/mlpack/methods/nca/nca_impl.hpp | 2 +-
src/mlpack/methods/nca/nca_main.cpp | 5 ++-
.../methods/nca/nca_softmax_error_function.hpp | 4 +--
.../nca/nca_softmax_error_function_impl.hpp | 2 +-
.../methods/nystroem_method/kmeans_selection.hpp | 2 +-
src/mlpack/tests/gmm_test.cpp | 2 +-
src/mlpack/tests/hmm_test.cpp | 24 ++++++-------
src/mlpack/tests/kmeans_test.cpp | 42 +++++++++++-----------
src/mlpack/tests/nca_test.cpp | 20 +++++------
32 files changed, 115 insertions(+), 115 deletions(-)
diff --git a/src/mlpack/methods/gmm/em_fit.hpp b/src/mlpack/methods/gmm/em_fit.hpp
index 5396e03..26399b5 100644
--- a/src/mlpack/methods/gmm/em_fit.hpp
+++ b/src/mlpack/methods/gmm/em_fit.hpp
@@ -27,7 +27,7 @@ namespace gmm {
*
* - void Cluster(const arma::mat& observations,
* const size_t clusters,
- * arma::Col<size_t>& assignments);
+ * arma::Row<size_t>& assignments);
*
* This method should create 'clusters' clusters, and return the assignment of
* each point to a cluster.
diff --git a/src/mlpack/methods/gmm/em_fit_impl.hpp b/src/mlpack/methods/gmm/em_fit_impl.hpp
index 032fa61..f508fb8 100644
--- a/src/mlpack/methods/gmm/em_fit_impl.hpp
+++ b/src/mlpack/methods/gmm/em_fit_impl.hpp
@@ -208,7 +208,7 @@ InitialClustering(const arma::mat& observations,
arma::vec& weights)
{
// Assignments from clustering.
- arma::Col<size_t> assignments;
+ arma::Row<size_t> assignments;
// Run clustering algorithm.
clusterer.Cluster(observations, dists.size(), assignments);
diff --git a/src/mlpack/methods/gmm/gmm.hpp b/src/mlpack/methods/gmm/gmm.hpp
index 83c8e04..7ee4b0d 100644
--- a/src/mlpack/methods/gmm/gmm.hpp
+++ b/src/mlpack/methods/gmm/gmm.hpp
@@ -324,7 +324,7 @@ class GMM
* @param labels Object which will be filled with labels.
*/
void Classify(const arma::mat& observations,
- arma::Col<size_t>& labels) const;
+ arma::Row<size_t>& labels) const;
/**
* Serialize the GMM.
diff --git a/src/mlpack/methods/gmm/gmm_impl.hpp b/src/mlpack/methods/gmm/gmm_impl.hpp
index 02298f9..18fdc19 100644
--- a/src/mlpack/methods/gmm/gmm_impl.hpp
+++ b/src/mlpack/methods/gmm/gmm_impl.hpp
@@ -346,7 +346,7 @@ double GMM<FittingType>::Estimate(const arma::mat& observations,
*/
template<typename FittingType>
void GMM<FittingType>::Classify(const arma::mat& observations,
- arma::Col<size_t>& labels) const
+ arma::Row<size_t>& labels) const
{
// This is not the best way to do this!
diff --git a/src/mlpack/methods/hmm/hmm.hpp b/src/mlpack/methods/hmm/hmm.hpp
index c0bd81a..de375da 100644
--- a/src/mlpack/methods/hmm/hmm.hpp
+++ b/src/mlpack/methods/hmm/hmm.hpp
@@ -58,7 +58,7 @@ namespace hmm /** Hidden Markov Models. */ {
*
* @code
* extern arma::mat observations; // Each column is an observation.
- * extern arma::Col<size_t> states; // Hidden states for each observation.
+ * extern arma::Row<size_t> states; // Hidden states for each observation.
* // Create an untrained HMM with 5 hidden states and default (N(0, 1))
* // Gaussian distributions with the dimensionality of the dataset.
* HMM<GaussianDistribution> hmm(5, GaussianDistribution(observations.n_rows));
@@ -184,7 +184,7 @@ class HMM
* observation.
*/
void Train(const std::vector<arma::mat>& dataSeq,
- const std::vector<arma::Col<size_t> >& stateSeq);
+ const std::vector<arma::Row<size_t> >& stateSeq);
/**
* Estimate the probabilities of each hidden state at each time step for each
@@ -237,7 +237,7 @@ class HMM
*/
void Generate(const size_t length,
arma::mat& dataSequence,
- arma::Col<size_t>& stateSequence,
+ arma::Row<size_t>& stateSequence,
const size_t startState = 0) const;
/**
@@ -251,7 +251,7 @@ class HMM
* @return Log-likelihood of most probable state sequence.
*/
double Predict(const arma::mat& dataSeq,
- arma::Col<size_t>& stateSeq) const;
+ arma::Row<size_t>& stateSeq) const;
/**
* Compute the log-likelihood of the given data sequence.
diff --git a/src/mlpack/methods/hmm/hmm_generate_main.cpp b/src/mlpack/methods/hmm/hmm_generate_main.cpp
index 8b980a8..5240d55 100644
--- a/src/mlpack/methods/hmm/hmm_generate_main.cpp
+++ b/src/mlpack/methods/hmm/hmm_generate_main.cpp
@@ -46,7 +46,7 @@ struct Generate
static void Apply(HMMType& hmm, void* /* extraInfo */)
{
mat observations;
- Col<size_t> sequence;
+ Row<size_t> sequence;
// Load the parameters.
const size_t startState = (size_t) CLI::GetParam<int>("start_state");
@@ -67,7 +67,7 @@ struct Generate
// Do we want to save the hidden sequence?
const string sequenceFile = CLI::GetParam<string>("state_file");
if (sequenceFile != "")
- data::Save(sequenceFile, sequence, true, false);
+ data::Save(sequenceFile, sequence, true);
}
};
diff --git a/src/mlpack/methods/hmm/hmm_impl.hpp b/src/mlpack/methods/hmm/hmm_impl.hpp
index 5cf1fe0..de43db5 100644
--- a/src/mlpack/methods/hmm/hmm_impl.hpp
+++ b/src/mlpack/methods/hmm/hmm_impl.hpp
@@ -195,7 +195,7 @@ void HMM<Distribution>::Train(const std::vector<arma::mat>& dataSeq)
*/
template<typename Distribution>
void HMM<Distribution>::Train(const std::vector<arma::mat>& dataSeq,
- const std::vector<arma::Col<size_t> >& stateSeq)
+ const std::vector<arma::Row<size_t> >& stateSeq)
{
// Simple error checking.
if (dataSeq.size() != stateSeq.size())
@@ -330,7 +330,7 @@ double HMM<Distribution>::Estimate(const arma::mat& dataSeq,
template<typename Distribution>
void HMM<Distribution>::Generate(const size_t length,
arma::mat& dataSequence,
- arma::Col<size_t>& stateSequence,
+ arma::Row<size_t>& stateSequence,
const size_t startState) const
{
// Set vectors to the right size.
@@ -378,7 +378,7 @@ void HMM<Distribution>::Generate(const size_t length,
*/
template<typename Distribution>
double HMM<Distribution>::Predict(const arma::mat& dataSeq,
- arma::Col<size_t>& stateSeq) const
+ arma::Row<size_t>& stateSeq) const
{
// This is an implementation of the Viterbi algorithm for finding the most
// probable sequence of states to produce the observed data sequence. We
diff --git a/src/mlpack/methods/hmm/hmm_regression.hpp b/src/mlpack/methods/hmm/hmm_regression.hpp
index 4ef5e07..c7ac3af 100644
--- a/src/mlpack/methods/hmm/hmm_regression.hpp
+++ b/src/mlpack/methods/hmm/hmm_regression.hpp
@@ -174,7 +174,7 @@ class HMMRegression : public HMM<distribution::RegressionDistribution>
*/
void Train(const std::vector<arma::mat>& predictors,
const std::vector<arma::vec>& responses,
- const std::vector<arma::Col<size_t> >& stateSeq);
+ const std::vector<arma::Row<size_t> >& stateSeq);
/**
* Estimate the probabilities of each hidden state at each time step for each
@@ -231,7 +231,7 @@ class HMMRegression : public HMM<distribution::RegressionDistribution>
*/
double Predict(const arma::mat& predictors,
const arma::vec& responses,
- arma::Col<size_t>& stateSeq) const;
+ arma::Row<size_t>& stateSeq) const;
/**
* Compute the log-likelihood of the given predictors and responses.
diff --git a/src/mlpack/methods/hmm/hmm_regression_impl.hpp b/src/mlpack/methods/hmm/hmm_regression_impl.hpp
index 5c84157..83a00c2 100644
--- a/src/mlpack/methods/hmm/hmm_regression_impl.hpp
+++ b/src/mlpack/methods/hmm/hmm_regression_impl.hpp
@@ -25,7 +25,7 @@ void HMMRegression::Train(const std::vector<arma::mat>& predictors,
void HMMRegression::Train(const std::vector<arma::mat>& predictors,
const std::vector<arma::vec>& responses,
- const std::vector<arma::Col<size_t> >& stateSeq)
+ const std::vector<arma::Row<size_t> >& stateSeq)
{
std::vector<arma::mat> dataSeq;
StackData(predictors, responses, dataSeq);
@@ -69,7 +69,7 @@ double HMMRegression::Estimate(const arma::mat& predictors,
*/
double HMMRegression::Predict(const arma::mat& predictors,
const arma::vec& responses,
- arma::Col<size_t>& stateSeq) const
+ arma::Row<size_t>& stateSeq) const
{
arma::mat dataSeq;
StackData(predictors, responses, dataSeq);
diff --git a/src/mlpack/methods/hmm/hmm_train_main.cpp b/src/mlpack/methods/hmm/hmm_train_main.cpp
index ae40991..291305c 100644
--- a/src/mlpack/methods/hmm/hmm_train_main.cpp
+++ b/src/mlpack/methods/hmm/hmm_train_main.cpp
@@ -83,7 +83,7 @@ struct Train
<< "the HMM (" << hmm.Emission()[0].Dimensionality() << ")!"
<< endl;
- vector<arma::Col<size_t> > labelSeq; // May be empty.
+ vector<arma::Row<size_t>> labelSeq; // May be empty.
if (labelsFile != "")
{
// Do we have multiple label files to load?
@@ -107,15 +107,15 @@ struct Train
Mat<size_t> label;
data::Load(lineBuf, label, true); // Fatal on failure.
- // Ensure that matrix only has one column.
- if (label.n_rows == 1)
+ // Ensure that matrix only has one row.
+ if (label.n_cols == 1)
label = trans(label);
- if (label.n_cols > 1)
+ if (label.n_rows > 1)
Log::Fatal << "Invalid labels; must be one-dimensional." << endl;
// Check all of the labels.
- for (size_t i = 0; i < label.n_rows; ++i)
+ for (size_t i = 0; i < label.n_cols; ++i)
{
if (label[i] >= hmm.Transition().n_cols)
{
@@ -126,7 +126,7 @@ struct Train
}
}
- labelSeq.push_back(label.col(0));
+ labelSeq.push_back(label.row(0));
f.getline(lineBuf, 1024, '\n');
}
@@ -138,11 +138,11 @@ struct Train
Mat<size_t> label;
data::Load(labelsFile, label, true);
- // Ensure that matrix only has one column.
- if (label.n_rows == 1)
+ // Ensure that matrix only has one row.
+ if (label.n_cols == 1)
label = trans(label);
- if (label.n_cols > 1)
+ if (label.n_rows > 1)
Log::Fatal << "Invalid labels; must be one-dimensional." << endl;
// Verify the same number of observations as the data.
@@ -152,7 +152,7 @@ struct Train
<< labelSeq.size() << "!" << endl;
// Check all of the labels.
- for (size_t i = 0; i < label.n_rows; ++i)
+ for (size_t i = 0; i < label.n_cols; ++i)
{
if (label[i] >= hmm.Transition().n_cols)
{
@@ -163,7 +163,7 @@ struct Train
}
}
- labelSeq.push_back(label.col(0));
+ labelSeq.push_back(label.row(0));
}
// Now perform the training with labels.
diff --git a/src/mlpack/methods/hmm/hmm_viterbi_main.cpp b/src/mlpack/methods/hmm/hmm_viterbi_main.cpp
index 9bf086c..2e6328b 100644
--- a/src/mlpack/methods/hmm/hmm_viterbi_main.cpp
+++ b/src/mlpack/methods/hmm/hmm_viterbi_main.cpp
@@ -58,12 +58,12 @@ struct Viterbi
<< "does not match HMM Gaussian dimensionality ("
<< hmm.Emission()[0].Dimensionality() << ")!" << endl;
- arma::Col<size_t> sequence;
+ arma::Row<size_t> sequence;
hmm.Predict(dataSeq, sequence);
// Save output.
const string outputFile = CLI::GetParam<string>("output_file");
- data::Save(outputFile, sequence, true, false);
+ data::Save(outputFile, sequence, true);
}
};
diff --git a/src/mlpack/methods/kmeans/dual_tree_kmeans.hpp b/src/mlpack/methods/kmeans/dual_tree_kmeans.hpp
index e1ec81b..01fd8a1 100644
--- a/src/mlpack/methods/kmeans/dual_tree_kmeans.hpp
+++ b/src/mlpack/methods/kmeans/dual_tree_kmeans.hpp
@@ -95,7 +95,7 @@ class DualTreeKMeans
//! Indicator of whether or not the point is pruned.
std::vector<bool> prunedPoints;
- arma::Col<size_t> assignments;
+ arma::Row<size_t> assignments;
std::vector<bool> visited; // Was the point visited this iteration?
diff --git a/src/mlpack/methods/kmeans/dual_tree_kmeans_rules.hpp b/src/mlpack/methods/kmeans/dual_tree_kmeans_rules.hpp
index 1c07de5..77cf231 100644
--- a/src/mlpack/methods/kmeans/dual_tree_kmeans_rules.hpp
+++ b/src/mlpack/methods/kmeans/dual_tree_kmeans_rules.hpp
@@ -20,7 +20,7 @@ class DualTreeKMeansRules
public:
DualTreeKMeansRules(const arma::mat& centroids,
const arma::mat& dataset,
- arma::Col<size_t>& assignments,
+ arma::Row<size_t>& assignments,
arma::vec& upperBounds,
arma::vec& lowerBounds,
MetricType& metric,
@@ -53,7 +53,7 @@ class DualTreeKMeansRules
private:
const arma::mat& centroids;
const arma::mat& dataset;
- arma::Col<size_t>& assignments;
+ arma::Row<size_t>& assignments;
arma::vec& upperBounds;
arma::vec& lowerBounds;
MetricType& metric;
diff --git a/src/mlpack/methods/kmeans/dual_tree_kmeans_rules_impl.hpp b/src/mlpack/methods/kmeans/dual_tree_kmeans_rules_impl.hpp
index c690679..2c8b4e5 100644
--- a/src/mlpack/methods/kmeans/dual_tree_kmeans_rules_impl.hpp
+++ b/src/mlpack/methods/kmeans/dual_tree_kmeans_rules_impl.hpp
@@ -16,7 +16,7 @@ template<typename MetricType, typename TreeType>
DualTreeKMeansRules<MetricType, TreeType>::DualTreeKMeansRules(
const arma::mat& centroids,
const arma::mat& dataset,
- arma::Col<size_t>& assignments,
+ arma::Row<size_t>& assignments,
arma::vec& upperBounds,
arma::vec& lowerBounds,
MetricType& metric,
diff --git a/src/mlpack/methods/kmeans/kmeans.hpp b/src/mlpack/methods/kmeans/kmeans.hpp
index 0e69893..8acc9f3 100644
--- a/src/mlpack/methods/kmeans/kmeans.hpp
+++ b/src/mlpack/methods/kmeans/kmeans.hpp
@@ -32,7 +32,7 @@ namespace kmeans /** K-Means clustering. */ {
*
* @code
* extern arma::mat data; // Dataset we want to run K-Means on.
- * arma::Col<size_t> assignments; // Cluster assignments.
+ * arma::Row<size_t> assignments; // Cluster assignments.
* arma::mat centroids; // Cluster centroids.
*
* KMeans<> k; // Default options.
@@ -48,10 +48,12 @@ namespace kmeans /** K-Means clustering. */ {
* metric::LMetric for an example.
* @tparam InitialPartitionPolicy Initial partitioning policy; must implement a
* default constructor and 'void Cluster(const arma::mat&, const size_t,
- * arma::Col<size_t>&)'.
+ * arma::Row<size_t>&)'.
* @tparam EmptyClusterPolicy Policy for what to do on an empty cluster; must
- * implement a default constructor and 'void EmptyCluster(const arma::mat&,
- * arma::Col<size_t&)'.
+ * implement a default constructor and 'void EmptyCluster(const arma::mat&
+ * data, const size_t emptyCluster, const arma::mat& oldCentroids,
+ * arma::mat& newCentroids, arma::Col<size_t>& counts, MetricType& metric,
+ * const size_t iteration)'.
* @tparam LloydStepType Implementation of single Lloyd step to use.
*
* @see RandomPartition, RefinedStart, AllowEmptyClusters,
@@ -99,7 +101,7 @@ class KMeans
*/
void Cluster(const MatType& data,
const size_t clusters,
- arma::Col<size_t>& assignments,
+ arma::Row<size_t>& assignments,
const bool initialGuess = false);
/**
@@ -142,7 +144,7 @@ class KMeans
*/
void Cluster(const MatType& data,
const size_t clusters,
- arma::Col<size_t>& assignments,
+ arma::Row<size_t>& assignments,
arma::mat& centroids,
const bool initialAssignmentGuess = false,
const bool initialCentroidGuess = false);
diff --git a/src/mlpack/methods/kmeans/kmeans_impl.hpp b/src/mlpack/methods/kmeans/kmeans_impl.hpp
index 0e0942b..585e57a 100644
--- a/src/mlpack/methods/kmeans/kmeans_impl.hpp
+++ b/src/mlpack/methods/kmeans/kmeans_impl.hpp
@@ -57,7 +57,7 @@ inline void KMeans<
MatType>::
Cluster(const MatType& data,
const size_t clusters,
- arma::Col<size_t>& assignments,
+ arma::Row<size_t>& assignments,
const bool initialGuess)
{
arma::mat centroids(data.n_rows, clusters);
@@ -113,11 +113,11 @@ Cluster(const MatType& data,
// The partitioner gives assignments, so we need to calculate centroids from
// those assignments. This is probably not the most efficient way to do
// this, so maybe refactoring should be considered in the future.
- arma::Col<size_t> assignments;
+ arma::Row<size_t> assignments;
partitioner.Cluster(data, clusters, assignments);
// Calculate initial centroids.
- arma::Col<size_t> counts;
+ arma::Row<size_t> counts;
counts.zeros(clusters);
centroids.zeros(data.n_rows, clusters);
for (size_t i = 0; i < data.n_cols; ++i)
@@ -210,7 +210,7 @@ void KMeans<
MatType>::
Cluster(const MatType& data,
const size_t clusters,
- arma::Col<size_t>& assignments,
+ arma::Row<size_t>& assignments,
arma::mat& centroids,
const bool initialAssignmentGuess,
const bool initialCentroidGuess)
@@ -224,7 +224,7 @@ Cluster(const MatType& data,
<< data.n_cols << ")!" << std::endl;
// Calculate initial centroids.
- arma::Col<size_t> counts;
+ arma::Row<size_t> counts;
counts.zeros(clusters);
centroids.zeros(data.n_rows, clusters);
for (size_t i = 0; i < data.n_cols; ++i)
diff --git a/src/mlpack/methods/kmeans/kmeans_main.cpp b/src/mlpack/methods/kmeans/kmeans_main.cpp
index e9c3ad1..a5eb324 100644
--- a/src/mlpack/methods/kmeans/kmeans_main.cpp
+++ b/src/mlpack/methods/kmeans/kmeans_main.cpp
@@ -237,7 +237,7 @@ void RunKMeans(const InitialPartitionPolicy& ipp)
if (CLI::HasParam("output_file") || CLI::HasParam("in_place"))
{
// We need to get the assignments.
- arma::Col<size_t> assignments;
+ arma::Row<size_t> assignments;
kmeans.Cluster(dataset, clusters, assignments, centroids,
false, initialCentroidGuess);
Timer::Stop("clustering");
@@ -247,11 +247,11 @@ void RunKMeans(const InitialPartitionPolicy& ipp)
{
// Add the column of assignments to the dataset; but we have to convert
// them to type double first.
- arma::vec converted(assignments.n_elem);
+ arma::rowvec converted(assignments.n_elem);
for (size_t i = 0; i < assignments.n_elem; i++)
converted(i) = (double) assignments(i);
- dataset.insert_rows(dataset.n_rows, trans(converted));
+ dataset.insert_rows(dataset.n_rows, converted);
// Save the dataset.
data::Save(inputFile, dataset);
@@ -262,17 +262,16 @@ void RunKMeans(const InitialPartitionPolicy& ipp)
{
// Save only the labels.
string outputFile = CLI::GetParam<string>("output_file");
- arma::Mat<size_t> output = trans(assignments);
- data::Save(outputFile, output);
+ data::Save(outputFile, assignments);
}
else
{
// Convert the assignments to doubles.
- arma::vec converted(assignments.n_elem);
+ arma::rowvec converted(assignments.n_elem);
for (size_t i = 0; i < assignments.n_elem; i++)
converted(i) = (double) assignments(i);
- dataset.insert_rows(dataset.n_rows, trans(converted));
+ dataset.insert_rows(dataset.n_rows, converted);
// Now save, in the different file.
string outputFile = CLI::GetParam<string>("output_file");
diff --git a/src/mlpack/methods/kmeans/max_variance_new_cluster.hpp b/src/mlpack/methods/kmeans/max_variance_new_cluster.hpp
index 0d91523..968f2e6 100644
--- a/src/mlpack/methods/kmeans/max_variance_new_cluster.hpp
+++ b/src/mlpack/methods/kmeans/max_variance_new_cluster.hpp
@@ -59,7 +59,7 @@ class MaxVarianceNewCluster
//! Cached variances for each cluster.
arma::vec variances;
//! Cached assignments for each point.
- arma::Col<size_t> assignments;
+ arma::Row<size_t> assignments;
//! Called when we are on a new iteration.
template<typename MetricType, typename MatType>
diff --git a/src/mlpack/methods/kmeans/random_partition.hpp b/src/mlpack/methods/kmeans/random_partition.hpp
index 34e4f49..de969f2 100644
--- a/src/mlpack/methods/kmeans/random_partition.hpp
+++ b/src/mlpack/methods/kmeans/random_partition.hpp
@@ -38,10 +38,10 @@ class RandomPartition
template<typename MatType>
inline static void Cluster(const MatType& data,
const size_t clusters,
- arma::Col<size_t>& assignments)
+ arma::Row<size_t>& assignments)
{
// Implementation is so simple we'll put it here in the header file.
- assignments = arma::shuffle(arma::linspace<arma::Col<size_t> >(0,
+ assignments = arma::shuffle(arma::linspace<arma::Row<size_t>>(0,
(clusters - 1), data.n_cols));
}
diff --git a/src/mlpack/methods/kmeans/refined_start.hpp b/src/mlpack/methods/kmeans/refined_start.hpp
index 39c431c..d06e463 100644
--- a/src/mlpack/methods/kmeans/refined_start.hpp
+++ b/src/mlpack/methods/kmeans/refined_start.hpp
@@ -54,7 +54,7 @@ class RefinedStart
template<typename MatType>
void Cluster(const MatType& data,
const size_t clusters,
- arma::Col<size_t>& assignments) const;
+ arma::Row<size_t>& assignments) const;
//! Get the number of samplings that will be performed.
size_t Samplings() const { return samplings; }
diff --git a/src/mlpack/methods/kmeans/refined_start_impl.hpp b/src/mlpack/methods/kmeans/refined_start_impl.hpp
index c8e7dcb..14c92d2 100644
--- a/src/mlpack/methods/kmeans/refined_start_impl.hpp
+++ b/src/mlpack/methods/kmeans/refined_start_impl.hpp
@@ -19,7 +19,7 @@ namespace kmeans {
template<typename MatType>
void RefinedStart::Cluster(const MatType& data,
const size_t clusters,
- arma::Col<size_t>& assignments) const
+ arma::Row<size_t>& assignments) const
{
math::RandomSeed(std::time(NULL));
@@ -31,7 +31,7 @@ void RefinedStart::Cluster(const MatType& data,
arma::mat sampledCentroids(data.n_rows, samplings * clusters);
// We will use these objects repeatedly for clustering.
- arma::Col<size_t> sampledAssignments;
+ arma::Row<size_t> sampledAssignments;
arma::mat centroids;
for (size_t i = 0; i < samplings; ++i)
diff --git a/src/mlpack/methods/naive_bayes/naive_bayes_classifier.hpp b/src/mlpack/methods/naive_bayes/naive_bayes_classifier.hpp
index 4b6e40b..9647e88 100644
--- a/src/mlpack/methods/naive_bayes/naive_bayes_classifier.hpp
+++ b/src/mlpack/methods/naive_bayes/naive_bayes_classifier.hpp
@@ -49,7 +49,7 @@ class NaiveBayesClassifier
* Example use:
* @code
* extern arma::mat training_data, testing_data;
- * extern arma::Col<size_t> labels;
+ * extern arma::Row<size_t> labels;
* NaiveBayesClassifier nbc(training_data, labels, 5);
* @endcode
*
@@ -110,7 +110,7 @@ class NaiveBayesClassifier
*
* @code
* arma::mat test_data; // each column is a test point
- * arma::Col<size_t> results;
+ * arma::Row<size_t> results;
* ...
* nbc.Classify(test_data, &results);
* @endcode
diff --git a/src/mlpack/methods/nca/nca.hpp b/src/mlpack/methods/nca/nca.hpp
index 298d64e..7ff5cf9 100644
--- a/src/mlpack/methods/nca/nca.hpp
+++ b/src/mlpack/methods/nca/nca.hpp
@@ -58,7 +58,7 @@ class NCA
* @param metric Instantiated metric to use.
*/
NCA(const arma::mat& dataset,
- const arma::Col<size_t>& labels,
+ const arma::Row<size_t>& labels,
MetricType metric = MetricType());
/**
@@ -75,7 +75,7 @@ class NCA
//! Get the dataset reference.
const arma::mat& Dataset() const { return dataset; }
//! Get the labels reference.
- const arma::Col<size_t>& Labels() const { return labels; }
+ const arma::Row<size_t>& Labels() const { return labels; }
//! Get the optimizer.
const OptimizerType<SoftmaxErrorFunction<MetricType> >& Optimizer() const
@@ -87,7 +87,7 @@ class NCA
//! Dataset reference.
const arma::mat& dataset;
//! Labels reference.
- const arma::Col<size_t>& labels;
+ const arma::Row<size_t>& labels;
//! Metric to be used.
MetricType metric;
diff --git a/src/mlpack/methods/nca/nca_impl.hpp b/src/mlpack/methods/nca/nca_impl.hpp
index 49ff29d..dd6076b 100644
--- a/src/mlpack/methods/nca/nca_impl.hpp
+++ b/src/mlpack/methods/nca/nca_impl.hpp
@@ -16,7 +16,7 @@ namespace nca {
// Just set the internal matrix reference.
template<typename MetricType, template<typename> class OptimizerType>
NCA<MetricType, OptimizerType>::NCA(const arma::mat& dataset,
- const arma::Col<size_t>& labels,
+ const arma::Row<size_t>& labels,
MetricType metric) :
dataset(dataset),
labels(labels),
diff --git a/src/mlpack/methods/nca/nca_main.cpp b/src/mlpack/methods/nca/nca_main.cpp
index 5d2d9b2..c4554a5 100644
--- a/src/mlpack/methods/nca/nca_main.cpp
+++ b/src/mlpack/methods/nca/nca_main.cpp
@@ -220,10 +220,9 @@ int main(int argc, char* argv[])
}
// Now create the NCA object and run the optimization.
- arma::Col<size_t> tLabels = labels.t();
if (optimizerType == "sgd")
{
- NCA<LMetric<2> > nca(data, tLabels);
+ NCA<LMetric<2> > nca(data, labels);
nca.Optimizer().StepSize() = stepSize;
nca.Optimizer().MaxIterations() = maxIterations;
nca.Optimizer().Tolerance() = tolerance;
@@ -233,7 +232,7 @@ int main(int argc, char* argv[])
}
else if (optimizerType == "lbfgs")
{
- NCA<LMetric<2>, L_BFGS> nca(data, tLabels);
+ NCA<LMetric<2>, L_BFGS> nca(data, labels);
nca.Optimizer().NumBasis() = numBasis;
nca.Optimizer().MaxIterations() = maxIterations;
nca.Optimizer().ArmijoConstant() = armijoConstant;
diff --git a/src/mlpack/methods/nca/nca_softmax_error_function.hpp b/src/mlpack/methods/nca/nca_softmax_error_function.hpp
index 4d162cd..e94a2de 100644
--- a/src/mlpack/methods/nca/nca_softmax_error_function.hpp
+++ b/src/mlpack/methods/nca/nca_softmax_error_function.hpp
@@ -48,7 +48,7 @@ class SoftmaxErrorFunction
* @param kernel Instantiated kernel (optional).
*/
SoftmaxErrorFunction(const arma::mat& dataset,
- const arma::Col<size_t>& labels,
+ const arma::Row<size_t>& labels,
MetricType metric = MetricType());
/**
@@ -112,7 +112,7 @@ class SoftmaxErrorFunction
//! The dataset.
const arma::mat& dataset;
//! Labels for each point in the dataset.
- const arma::Col<size_t>& labels;
+ const arma::Row<size_t>& labels;
//! The instantiated metric.
MetricType metric;
diff --git a/src/mlpack/methods/nca/nca_softmax_error_function_impl.hpp b/src/mlpack/methods/nca/nca_softmax_error_function_impl.hpp
index de97ace..7c8a4b7 100644
--- a/src/mlpack/methods/nca/nca_softmax_error_function_impl.hpp
+++ b/src/mlpack/methods/nca/nca_softmax_error_function_impl.hpp
@@ -17,7 +17,7 @@ namespace nca {
template<typename MetricType>
SoftmaxErrorFunction<MetricType>::SoftmaxErrorFunction(
const arma::mat& dataset,
- const arma::Col<size_t>& labels,
+ const arma::Row<size_t>& labels,
MetricType metric) :
dataset(dataset),
labels(labels),
diff --git a/src/mlpack/methods/nystroem_method/kmeans_selection.hpp b/src/mlpack/methods/nystroem_method/kmeans_selection.hpp
index 62346c1..e03fd87 100644
--- a/src/mlpack/methods/nystroem_method/kmeans_selection.hpp
+++ b/src/mlpack/methods/nystroem_method/kmeans_selection.hpp
@@ -34,7 +34,7 @@ class KMeansSelection
*/
const static arma::mat* Select(const arma::mat& data, const size_t m)
{
- arma::Col<size_t> assignments;
+ arma::Row<size_t> assignments;
arma::mat* centroids = new arma::mat;
// Perform the K-Means clustering method.
diff --git a/src/mlpack/tests/gmm_test.cpp b/src/mlpack/tests/gmm_test.cpp
index 453b0cc..41b24ab 100644
--- a/src/mlpack/tests/gmm_test.cpp
+++ b/src/mlpack/tests/gmm_test.cpp
@@ -461,7 +461,7 @@ BOOST_AUTO_TEST_CASE(GMMClassifyTest)
"-3 -3;"
"-5 1"));
- arma::Col<size_t> classes;
+ arma::Row<size_t> classes;
gmm.Classify(observations, classes);
diff --git a/src/mlpack/tests/hmm_test.cpp b/src/mlpack/tests/hmm_test.cpp
index 060df65..e4b862a 100644
--- a/src/mlpack/tests/hmm_test.cpp
+++ b/src/mlpack/tests/hmm_test.cpp
@@ -45,7 +45,7 @@ BOOST_AUTO_TEST_CASE(SimpleDiscreteHMMTestViterbi)
// We'll use the sequence [U U N U U] (U = umbrella, N = no umbrella) like on
// p. 547.
arma::mat observation = "0 0 1 0 0";
- arma::Col<size_t> states;
+ arma::Row<size_t> states;
hmm.Predict(observation, states);
// Check each state.
@@ -81,7 +81,7 @@ BOOST_AUTO_TEST_CASE(BorodovskyHMMTestViterbi)
// GGCACTGAA.
arma::mat observation("2 2 1 0 1 3 2 0 0");
- arma::Col<size_t> states;
+ arma::Row<size_t> states;
hmm.Predict(observation, states);
// Most probable path is HHHLLLLLL.
@@ -323,7 +323,7 @@ BOOST_AUTO_TEST_CASE(DiscreteHMMLabeledTrainTest)
size_t obsLen = 800;
std::vector<arma::mat> observations(obsNum);
- std::vector<arma::Col<size_t> > states(obsNum);
+ std::vector<arma::Row<size_t> > states(obsNum);
for (size_t n = 0; n < obsNum; n++)
{
@@ -403,7 +403,7 @@ BOOST_AUTO_TEST_CASE(DiscreteHMMSimpleGenerateTest)
// Now generate a really, really long sequence.
arma::mat dataSeq;
- arma::Col<size_t> stateSeq;
+ arma::Row<size_t> stateSeq;
hmm.Generate(100000, dataSeq, stateSeq);
@@ -463,7 +463,7 @@ BOOST_AUTO_TEST_CASE(DiscreteHMMGenerateTest)
int numSeq = 400;
int numObs = 3000;
std::vector<arma::mat> sequences(numSeq);
- std::vector<arma::Col<size_t> > states(numSeq);
+ std::vector<arma::Row<size_t> > states(numSeq);
for (int i = 0; i < numSeq; i++)
{
// Random starting state.
@@ -543,7 +543,7 @@ BOOST_AUTO_TEST_CASE(GaussianHMMSimpleTest)
// Now, generate some sequences.
arma::mat observations(2, 1000);
- arma::Col<size_t> classes(1000);
+ arma::Row<size_t> classes(1000);
// 1000-observations sequence.
classes[0] = 0;
@@ -564,7 +564,7 @@ BOOST_AUTO_TEST_CASE(GaussianHMMSimpleTest)
}
// Now predict the sequence.
- arma::Col<size_t> predictedClasses;
+ arma::Row<size_t> predictedClasses;
arma::mat stateProb;
hmm.Predict(observations, predictedClasses);
@@ -605,7 +605,7 @@ BOOST_AUTO_TEST_CASE(GaussianHMMTrainTest)
// Now generate observations.
std::vector<arma::mat> observations(100);
- std::vector<arma::Col<size_t> > states(100);
+ std::vector<arma::Row<size_t> > states(100);
for (size_t obs = 0; obs < 100; obs++)
{
@@ -727,7 +727,7 @@ BOOST_AUTO_TEST_CASE(GaussianHMMGenerateTest)
// Now we will generate a long sequence.
std::vector<arma::mat> observations(1);
- std::vector<arma::Col<size_t> > states(1);
+ std::vector<arma::Row<size_t> > states(1);
// Start in state 1 (no reason).
hmm.Generate(10000, observations[0], states[0], 1);
@@ -808,7 +808,7 @@ BOOST_AUTO_TEST_CASE(GMMHMMPredictTest)
// Make a sequence of observations.
arma::mat observations(2, 1000);
- arma::Col<size_t> states(1000);
+ arma::Row<size_t> states(1000);
states[0] = 0;
observations.col(0) = gmms[0].Random();
@@ -825,7 +825,7 @@ BOOST_AUTO_TEST_CASE(GMMHMMPredictTest)
}
// Run the prediction.
- arma::Col<size_t> predictions;
+ arma::Row<size_t> predictions;
hmm.Predict(observations, predictions);
// Check that the predictions were correct.
@@ -867,7 +867,7 @@ BOOST_AUTO_TEST_CASE(GMMHMMLabeledTrainingTest)
// Make a sequence of observations.
std::vector<arma::mat> observations(5, arma::mat(2, 2500));
- std::vector<arma::Col<size_t> > states(5, arma::Col<size_t>(2500));
+ std::vector<arma::Row<size_t> > states(5, arma::Row<size_t>(2500));
for (size_t obs = 0; obs < 5; obs++)
{
states[obs][0] = 0;
diff --git a/src/mlpack/tests/kmeans_test.cpp b/src/mlpack/tests/kmeans_test.cpp
index 184a6a4..1a90fa7 100644
--- a/src/mlpack/tests/kmeans_test.cpp
+++ b/src/mlpack/tests/kmeans_test.cpp
@@ -65,7 +65,7 @@ BOOST_AUTO_TEST_CASE(KMeansSimpleTest)
{
KMeans<> kmeans;
- arma::Col<size_t> assignments;
+ arma::Row<size_t> assignments;
kmeans.Cluster((arma::mat) trans(kMeansData), 3, assignments);
// Now make sure we got it all right. There is no restriction on how the
@@ -98,9 +98,9 @@ BOOST_AUTO_TEST_CASE(KMeansSimpleTest)
*/
BOOST_AUTO_TEST_CASE(AllowEmptyClusterTest)
{
- arma::Col<size_t> assignments;
+ arma::Row<size_t> assignments;
assignments.randu(30);
- arma::Col<size_t> assignmentsOld = assignments;
+ arma::Row<size_t> assignmentsOld = assignments;
arma::mat centroids;
centroids.randu(30, 3); // This doesn't matter.
@@ -135,7 +135,7 @@ BOOST_AUTO_TEST_CASE(MaxVarianceNewClusterTest)
"1.0 0.8 0.7 5.1 5.2;");
// Point 2 is the mis-clustered point we're looking for to be moved.
- arma::Col<size_t> assignments("0 0 0 1 1");
+ arma::Row<size_t> assignments("0 0 0 1 1");
arma::mat centroids(2, 3);
centroids.col(0) = (1.0 / 3.0) * (data.col(0) + data.col(1) + data.col(2));
@@ -194,7 +194,7 @@ BOOST_AUTO_TEST_CASE(RandomPartitionTest)
arma::mat data;
data.randu(2, 1000); // One thousand points.
- arma::Col<size_t> assignments;
+ arma::Row<size_t> assignments;
// We'll ask for 18 clusters (arbitrary).
RandomPartition::Cluster(data, 18, assignments);
@@ -234,7 +234,7 @@ BOOST_AUTO_TEST_CASE(RandomInitialAssignmentFailureTest)
for (size_t run = 0; run < 15; ++run)
{
arma::mat centroids;
- arma::Col<size_t> assignments;
+ arma::Row<size_t> assignments;
KMeans<> kmeans;
kmeans.Cluster(dataset, 2, assignments, centroids);
@@ -265,7 +265,7 @@ BOOST_AUTO_TEST_CASE(InitialAssignmentTest)
// Now, if we specify initial assignments, the algorithm should converge (with
// zero iterations, actually, because this is the solution).
- arma::Col<size_t> assignments(10002);
+ arma::Row<size_t> assignments(10002);
assignments.fill(0);
assignments[10000] = 1;
assignments[10001] = 1;
@@ -307,7 +307,7 @@ BOOST_AUTO_TEST_CASE(InitialCentroidTest)
for (size_t i = 0; i < 2; ++i)
dataset.col(10000 + i) += arma::vec("50 50");
- arma::Col<size_t> assignments;
+ arma::Row<size_t> assignments;
arma::mat centroids(2, 2);
centroids.col(0) = arma::vec("0 0");
@@ -349,7 +349,7 @@ BOOST_AUTO_TEST_CASE(InitialAssignmentOverrideTest)
for (size_t i = 0; i < 2; ++i)
dataset.col(10000 + i) += arma::vec("50 50");
- arma::Col<size_t> assignments(10002);
+ arma::Row<size_t> assignments(10002);
assignments.fill(0);
assignments[10000] = 1;
assignments[10001] = 1;
@@ -411,7 +411,7 @@ BOOST_AUTO_TEST_CASE(RefinedStartTest)
// Now run the RefinedStart algorithm and make sure it doesn't deviate too
// much from the actual solution.
RefinedStart rs;
- arma::Col<size_t> assignments;
+ arma::Row<size_t> assignments;
arma::mat resultingCentroids;
rs.Cluster(data, 5, assignments);
@@ -468,7 +468,7 @@ BOOST_AUTO_TEST_CASE(SparseKMeansTest)
data(1402, 10) = -3.5;
data(1402, 11) = -3.0;
- arma::Col<size_t> assignments;
+ arma::Row<size_t> assignments;
KMeans<metric::EuclideanDistance, RandomPartition, MaxVarianceNewCluster,
NaiveKMeans, arma::sp_mat> kmeans; // Default options.
@@ -512,12 +512,12 @@ BOOST_AUTO_TEST_CASE(ElkanTest)
// clusters.
arma::mat naiveCentroids(centroids);
KMeans<> km;
- arma::Col<size_t> assignments;
+ arma::Row<size_t> assignments;
km.Cluster(dataset, k, assignments, naiveCentroids, false, true);
KMeans<metric::EuclideanDistance, RandomPartition, MaxVarianceNewCluster,
ElkanKMeans> elkan;
- arma::Col<size_t> elkanAssignments;
+ arma::Row<size_t> elkanAssignments;
arma::mat elkanCentroids(centroids);
elkan.Cluster(dataset, k, elkanAssignments, elkanCentroids, false, true);
@@ -546,12 +546,12 @@ BOOST_AUTO_TEST_CASE(HamerlyTest)
// clusters.
arma::mat naiveCentroids(centroids);
KMeans<> km;
- arma::Col<size_t> assignments;
+ arma::Row<size_t> assignments;
km.Cluster(dataset, k, assignments, naiveCentroids, false, true);
KMeans<metric::EuclideanDistance, RandomPartition, MaxVarianceNewCluster,
HamerlyKMeans> hamerly;
- arma::Col<size_t> hamerlyAssignments;
+ arma::Row<size_t> hamerlyAssignments;
arma::mat hamerlyCentroids(centroids);
hamerly.Cluster(dataset, k, hamerlyAssignments, hamerlyCentroids, false,
true);
@@ -581,12 +581,12 @@ BOOST_AUTO_TEST_CASE(PellegMooreTest)
// clusters.
arma::mat naiveCentroids(centroids);
KMeans<> km;
- arma::Col<size_t> assignments;
+ arma::Row<size_t> assignments;
km.Cluster(dataset, k, assignments, naiveCentroids, false, true);
KMeans<metric::EuclideanDistance, RandomPartition, MaxVarianceNewCluster,
PellegMooreKMeans> pellegMoore;
- arma::Col<size_t> pmAssignments;
+ arma::Row<size_t> pmAssignments;
arma::mat pmCentroids(centroids);
pellegMoore.Cluster(dataset, k, pmAssignments, pmCentroids, false, true);
@@ -613,12 +613,12 @@ BOOST_AUTO_TEST_CASE(DTNNTest)
arma::mat naiveCentroids(centroids);
KMeans<> km;
- arma::Col<size_t> assignments;
+ arma::Row<size_t> assignments;
km.Cluster(dataset, k, assignments, naiveCentroids, false, true);
KMeans<metric::EuclideanDistance, RandomPartition, MaxVarianceNewCluster,
DefaultDualTreeKMeans> dtnn;
- arma::Col<size_t> dtnnAssignments;
+ arma::Row<size_t> dtnnAssignments;
arma::mat dtnnCentroids(centroids);
dtnn.Cluster(dataset, k, dtnnAssignments, dtnnCentroids, false, true);
@@ -645,12 +645,12 @@ BOOST_AUTO_TEST_CASE(DTNNCoverTreeTest)
arma::mat naiveCentroids(centroids);
KMeans<> km;
- arma::Col<size_t> assignments;
+ arma::Row<size_t> assignments;
km.Cluster(dataset, k, assignments, naiveCentroids, false, true);
KMeans<metric::EuclideanDistance, RandomPartition, MaxVarianceNewCluster,
CoverTreeDualTreeKMeans> dtnn;
- arma::Col<size_t> dtnnAssignments;
+ arma::Row<size_t> dtnnAssignments;
arma::mat dtnnCentroids(centroids);
dtnn.Cluster(dataset, k, dtnnAssignments, dtnnCentroids, false, true);
diff --git a/src/mlpack/tests/nca_test.cpp b/src/mlpack/tests/nca_test.cpp
index e322f46..d1c00c5 100644
--- a/src/mlpack/tests/nca_test.cpp
+++ b/src/mlpack/tests/nca_test.cpp
@@ -33,7 +33,7 @@ BOOST_AUTO_TEST_CASE(SoftmaxInitialPoint)
// Cheap fake dataset.
arma::mat data;
data.randu(5, 5);
- arma::Col<size_t> labels;
+ arma::Row<size_t> labels;
labels.zeros(5);
SoftmaxErrorFunction<SquaredEuclideanDistance> sef(data, labels);
@@ -61,7 +61,7 @@ BOOST_AUTO_TEST_CASE(SoftmaxInitialEvaluation)
// Useful but simple dataset with six points and two classes.
arma::mat data = "-0.1 -0.1 -0.1 0.1 0.1 0.1;"
" 1.0 0.0 -1.0 1.0 0.0 -1.0 ";
- arma::Col<size_t> labels = " 0 0 0 1 1 1 ";
+ arma::Row<size_t> labels = " 0 0 0 1 1 1 ";
SoftmaxErrorFunction<SquaredEuclideanDistance> sef(data, labels);
@@ -82,7 +82,7 @@ BOOST_AUTO_TEST_CASE(SoftmaxInitialGradient)
// Useful but simple dataset with six points and two classes.
arma::mat data = "-0.1 -0.1 -0.1 0.1 0.1 0.1;"
" 1.0 0.0 -1.0 1.0 0.0 -1.0 ";
- arma::Col<size_t> labels = " 0 0 0 1 1 1 ";
+ arma::Row<size_t> labels = " 0 0 0 1 1 1 ";
SoftmaxErrorFunction<SquaredEuclideanDistance> sef(data, labels);
@@ -108,7 +108,7 @@ BOOST_AUTO_TEST_CASE(SoftmaxOptimalEvaluation)
// Simple optimal dataset.
arma::mat data = " 500 500 -500 -500;"
" 1 0 1 0 ";
- arma::Col<size_t> labels = " 0 0 1 1 ";
+ arma::Row<size_t> labels = " 0 0 1 1 ";
SoftmaxErrorFunction<SquaredEuclideanDistance> sef(data, labels);
@@ -127,7 +127,7 @@ BOOST_AUTO_TEST_CASE(SoftmaxOptimalGradient)
// Simple optimal dataset.
arma::mat data = " 500 500 -500 -500;"
" 1 0 1 0 ";
- arma::Col<size_t> labels = " 0 0 1 1 ";
+ arma::Row<size_t> labels = " 0 0 1 1 ";
SoftmaxErrorFunction<SquaredEuclideanDistance> sef(data, labels);
@@ -148,7 +148,7 @@ BOOST_AUTO_TEST_CASE(SoftmaxSeparableObjective)
// Useful but simple dataset with six points and two classes.
arma::mat data = "-0.1 -0.1 -0.1 0.1 0.1 0.1;"
" 1.0 0.0 -1.0 1.0 0.0 -1.0 ";
- arma::Col<size_t> labels = " 0 0 0 1 1 1 ";
+ arma::Row<size_t> labels = " 0 0 0 1 1 1 ";
SoftmaxErrorFunction<SquaredEuclideanDistance> sef(data, labels);
@@ -172,7 +172,7 @@ BOOST_AUTO_TEST_CASE(OptimalSoftmaxSeparableObjective)
// Simple optimal dataset.
arma::mat data = " 500 500 -500 -500;"
" 1 0 1 0 ";
- arma::Col<size_t> labels = " 0 0 1 1 ";
+ arma::Row<size_t> labels = " 0 0 1 1 ";
SoftmaxErrorFunction<SquaredEuclideanDistance> sef(data, labels);
@@ -194,7 +194,7 @@ BOOST_AUTO_TEST_CASE(SoftmaxSeparableGradient)
// Useful but simple dataset with six points and two classes.
arma::mat data = "-0.1 -0.1 -0.1 0.1 0.1 0.1;"
" 1.0 0.0 -1.0 1.0 0.0 -1.0 ";
- arma::Col<size_t> labels = " 0 0 0 1 1 1 ";
+ arma::Row<size_t> labels = " 0 0 0 1 1 1 ";
SoftmaxErrorFunction<SquaredEuclideanDistance> sef(data, labels);
@@ -257,7 +257,7 @@ BOOST_AUTO_TEST_CASE(NCASGDSimpleDataset)
// Useful but simple dataset with six points and two classes.
arma::mat data = "-0.1 -0.1 -0.1 0.1 0.1 0.1;"
" 1.0 0.0 -1.0 1.0 0.0 -1.0 ";
- arma::Col<size_t> labels = " 0 0 0 1 1 1 ";
+ arma::Row<size_t> labels = " 0 0 0 1 1 1 ";
// Huge learning rate because this is so simple.
NCA<SquaredEuclideanDistance> nca(data, labels);
@@ -291,7 +291,7 @@ BOOST_AUTO_TEST_CASE(NCALBFGSSimpleDataset)
// Useful but simple dataset with six points and two classes.
arma::mat data = "-0.1 -0.1 -0.1 0.1 0.1 0.1;"
" 1.0 0.0 -1.0 1.0 0.0 -1.0 ";
- arma::Col<size_t> labels = " 0 0 0 1 1 1 ";
+ arma::Row<size_t> labels = " 0 0 0 1 1 1 ";
// Huge learning rate because this is so simple.
NCA<SquaredEuclideanDistance, L_BFGS> nca(data, labels);
More information about the mlpack-git
mailing list