[mlpack-git] master: Fail when invalid labels are specified. (fa89192)

gitdub at big.cc.gt.atl.ga.us gitdub at big.cc.gt.atl.ga.us
Fri Nov 20 13:23:17 EST 2015


Repository : https://github.com/mlpack/mlpack

On branch  : master
Link       : https://github.com/mlpack/mlpack/compare/fdd2ae00c4359e1f394abb8afbf7a6bb44277272...fa8919245e69fb9dbfa98e43f6c060213e6a1937

>---------------------------------------------------------------

commit fa8919245e69fb9dbfa98e43f6c060213e6a1937
Author: Ryan Curtin <ryan at ratml.org>
Date:   Fri Nov 20 10:23:03 2015 -0800

    Fail when invalid labels are specified.


>---------------------------------------------------------------

fa8919245e69fb9dbfa98e43f6c060213e6a1937
 src/mlpack/methods/hmm/hmm_train_main.cpp | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/src/mlpack/methods/hmm/hmm_train_main.cpp b/src/mlpack/methods/hmm/hmm_train_main.cpp
index 00057dd..ae40991 100644
--- a/src/mlpack/methods/hmm/hmm_train_main.cpp
+++ b/src/mlpack/methods/hmm/hmm_train_main.cpp
@@ -114,6 +114,18 @@ struct Train
           if (label.n_cols > 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)
+          {
+            if (label[i] >= hmm.Transition().n_cols)
+            {
+              Log::Fatal << "HMM has " << hmm.Transition().n_cols << " hidden "
+                  << "states, but label on line " << i << " of '" << lineBuf
+                  << "' is " << label[i] << " (should be between 0 and "
+                  << (hmm.Transition().n_cols - 1) << ")!" << endl;
+            }
+          }
+
           labelSeq.push_back(label.col(0));
 
           f.getline(lineBuf, 1024, '\n');
@@ -139,6 +151,18 @@ struct Train
               << " the same number of points as observation sequence "
               << labelSeq.size() << "!" << endl;
 
+        // Check all of the labels.
+        for (size_t i = 0; i < label.n_rows; ++i)
+        {
+          if (label[i] >= hmm.Transition().n_cols)
+          {
+            Log::Fatal << "HMM has " << hmm.Transition().n_cols << " hidden "
+                << "states, but label on line " << i << " of '" << labelsFile
+                << "' is " << label[i] << " (should be between 0 and "
+                << (hmm.Transition().n_cols - 1) << ")!" << endl;
+          }
+        }
+
         labelSeq.push_back(label.col(0));
       }
 



More information about the mlpack-git mailing list