updated groundTruth issue for SoftmaxRegressionFunction and fixed build

This commit is contained in:
ayesdie
2019-04-07 22:05:07 -04:00
committed by Ryan Curtin
parent c55ea016e9
commit 121bd722a2
3 changed files with 10 additions and 7 deletions
@@ -221,7 +221,7 @@ double LinearSVMFunction<MatType>::Evaluate(
}
arma::mat margin = scores - (arma::repmat(arma::ones(numClasses).t()
* (scores % groundTruth.cols(firstId,lastId)), numClasses, 1))
* (scores % groundTruth.cols(firstId, lastId)), numClasses, 1))
+ delta - (delta * groundTruth.cols(firstId, lastId));
// The Hinge Loss Function
@@ -326,7 +326,7 @@ void LinearSVMFunction<MatType>::Gradient(
}
arma::mat margin = scores - (arma::repmat(arma::ones(numClasses).t()
* (scores % groundTruth.cols(firstId,lastId)), numClasses, 1))
* (scores % groundTruth.cols(firstId, lastId)), numClasses, 1))
+ delta - (delta * groundTruth.cols(firstId, lastId));
// For each sample, find the total number of classes where
@@ -334,7 +334,7 @@ void LinearSVMFunction<MatType>::Gradient(
arma::mat mask = margin.for_each([](arma::mat::elem_type& val)
{ val = (val > 0) ? 1: 0; });
arma::mat difference = groundTruth.cols(firstId,lastId)
arma::mat difference = groundTruth.cols(firstId, lastId)
% (-arma::repmat(arma::sum(mask), numClasses, 1)) + mask;
// Check intercept condition
@@ -454,7 +454,7 @@ double LinearSVMFunction<MatType>::EvaluateWithGradient(
}
arma::mat margin = scores - (arma::repmat(arma::ones(numClasses).t()
* (scores % groundTruth.cols(firstId,lastId)), numClasses, 1))
* (scores % groundTruth.cols(firstId, lastId)), numClasses, 1))
+ delta - (delta * groundTruth.cols(firstId, lastId));
// For each sample, find the total number of classes where
@@ -462,7 +462,7 @@ double LinearSVMFunction<MatType>::EvaluateWithGradient(
arma::mat mask = margin.for_each([](arma::mat::elem_type& val)
{ val = (val > 0) ? 1: 0; });
arma::mat difference = groundTruth.cols(firstId,lastId)
arma::mat difference = groundTruth.cols(firstId, lastId)
% (-arma::repmat(arma::sum(mask), numClasses, 1)) + mask;
// Check intercept condition
@@ -123,6 +123,9 @@ void SoftmaxRegressionFunction::GetGroundTruthMatrix(
arma::uvec rowPointers(labels.n_elem);
arma::uvec colPointers(labels.n_elem + 1);
// colPointers[0] needs to be set to 0.
colPointers[0] = 0;
// Row pointers are the labels of the examples, and column pointers are the
// number of cumulative entries made uptil that column.
for (size_t i = 0; i < labels.n_elem; i++)
+2 -2
View File
@@ -754,7 +754,7 @@ BOOST_AUTO_TEST_CASE(LinearSVMParallelSGDTwoClasses)
// Compare training accuracy to 1.
const double acc = lsvm.ComputeAccuracy(data, labels);
BOOST_REQUIRE_CLOSE(acc, 1.0, 1.0);
BOOST_REQUIRE_CLOSE(acc, 1.0, 2.0);
// Create test dataset.
for (size_t i = 0; i < points / 2; i++)
@@ -770,7 +770,7 @@ BOOST_AUTO_TEST_CASE(LinearSVMParallelSGDTwoClasses)
// Compare test accuracy to 1.
const double testAcc = lsvm.ComputeAccuracy(data, labels);
BOOST_REQUIRE_CLOSE(testAcc, 1.0, 1.0);
BOOST_REQUIRE_CLOSE(testAcc, 1.0, 2.0);
}
#endif