[mlpack-svn] r10095 - mlpack/trunk/src/mlpack/methods/hmm
fastlab-svn at coffeetalk-1.cc.gatech.edu
fastlab-svn at coffeetalk-1.cc.gatech.edu
Mon Oct 31 14:50:40 EDT 2011
Author: rcurtin
Date: 2011-10-31 14:50:40 -0400 (Mon, 31 Oct 2011)
New Revision: 10095
Modified:
mlpack/trunk/src/mlpack/methods/hmm/discreteHMM.cpp
mlpack/trunk/src/mlpack/methods/hmm/gaussianHMM.cpp
mlpack/trunk/src/mlpack/methods/hmm/generate.cpp
mlpack/trunk/src/mlpack/methods/hmm/loglik.cpp
mlpack/trunk/src/mlpack/methods/hmm/mixgaussHMM.cpp
mlpack/trunk/src/mlpack/methods/hmm/support.cpp
mlpack/trunk/src/mlpack/methods/hmm/support.hpp
mlpack/trunk/src/mlpack/methods/hmm/viterbi.cpp
Log:
Stop using TextWriter. This breaks already broken code. Waiting on resolution
of #131. Also, this introduces forty ten bajillion warnings.
Modified: mlpack/trunk/src/mlpack/methods/hmm/discreteHMM.cpp
===================================================================
--- mlpack/trunk/src/mlpack/methods/hmm/discreteHMM.cpp 2011-10-31 17:12:28 UTC (rev 10094)
+++ mlpack/trunk/src/mlpack/methods/hmm/discreteHMM.cpp 2011-10-31 18:50:40 UTC (rev 10095)
@@ -75,6 +75,7 @@
}
void DiscreteHMM::SaveProfile(const char* profile) const {
+ /*** need something better
TextWriter w_pro;
if (!(w_pro.Open(profile))) {
mlpack::Log::Warn << "Couldn't open " << profile << " for writing." <<
@@ -84,6 +85,7 @@
print_matrix(w_pro, transmission_, "%% transmission", "%f,");
print_matrix(w_pro, emission_, "%% emission", "%f,");
+ */
}
void DiscreteHMM::GenerateSequence(size_t length, arma::vec& data_seq, arma::vec& state_seq) const {
Modified: mlpack/trunk/src/mlpack/methods/hmm/gaussianHMM.cpp
===================================================================
--- mlpack/trunk/src/mlpack/methods/hmm/gaussianHMM.cpp 2011-10-31 17:12:28 UTC (rev 10094)
+++ mlpack/trunk/src/mlpack/methods/hmm/gaussianHMM.cpp 2011-10-31 18:50:40 UTC (rev 10095)
@@ -225,6 +225,7 @@
}
bool GaussianHMM::SaveProfile(const char* profile, const arma::mat& trans, const std::vector<arma::vec>& means, const std::vector<arma::mat>& covs) {
+ /** need something better
TextWriter w_pro;
if (!(w_pro.Open(profile))) {
mlpack::Log::Warn << "Couldn't open " << profile << " for writing." <<
@@ -245,6 +246,7 @@
sprintf(s, "%% covariance - state%zu", i);
print_matrix(w_pro, covs[i], s, "%f,");
}
+ */
return true;
}
Modified: mlpack/trunk/src/mlpack/methods/hmm/generate.cpp
===================================================================
--- mlpack/trunk/src/mlpack/methods/hmm/generate.cpp 2011-10-31 17:12:28 UTC (rev 10094)
+++ mlpack/trunk/src/mlpack/methods/hmm/generate.cpp 2011-10-31 18:50:40 UTC (rev 10095)
@@ -123,6 +123,7 @@
MixtureofGaussianHMM hmm;
hmm.InitFromFile(profile);
+ /** need something better
TextWriter w_seq, w_state;
if (!(w_seq.Open(seqout))) {
Log::Warn << "Couldn't open '" << seqout << "' for writing." << std::endl;
@@ -147,6 +148,7 @@
sprintf(s, "%% state sequence %d", i);
print_vector(w_state, states, s, "%.0f,");
}
+ */
//printf("---END---");
return true;
@@ -172,6 +174,7 @@
GaussianHMM hmm;
hmm.InitFromFile(profile);
+ /** need something better
TextWriter w_seq, w_state;
if (!(w_seq.Open(seqout))) {
Log::Warn << "Couldn't open '" << seqout << "' for writing." << std::endl;
@@ -196,6 +199,8 @@
sprintf(s, "%% state sequence %d", i);
print_vector(w_state, states, s, "%.0f,");
}
+ */
+
return true;
}
@@ -219,6 +224,7 @@
DiscreteHMM hmm;
hmm.InitFromFile(profile);
+ /** need something better
TextWriter w_seq, w_state;
if (!(w_seq.Open(seqout))) {
Log::Warn << "Couldn't open '" << seqout << "' for writing." << std::endl;
@@ -242,5 +248,6 @@
sprintf(s, "%% state sequence %d", i);
print_vector(w_state, states, s, "%.0f,");
}
+ */
return true;
}
Modified: mlpack/trunk/src/mlpack/methods/hmm/loglik.cpp
===================================================================
--- mlpack/trunk/src/mlpack/methods/hmm/loglik.cpp 2011-10-31 17:12:28 UTC (rev 10094)
+++ mlpack/trunk/src/mlpack/methods/hmm/loglik.cpp 2011-10-31 18:50:40 UTC (rev 10095)
@@ -105,6 +105,7 @@
std::vector<arma::mat> seqs;
load_matrix_list(seqin, seqs);
+ /** need something better
TextWriter w_log;
if (!(w_log.Open(logout))) {
Log::Warn << "Couldn't open '" << logout << "' for writing." << std::endl;
@@ -116,6 +117,7 @@
for (size_t i = 0; i < seqs.size(); i++)
w_log.Printf("%f\n", list_loglik[i]);
+ */
return true;
}
@@ -135,6 +137,7 @@
std::vector<arma::mat> seqs;
load_matrix_list(seqin, seqs);
+ /** need something better
TextWriter w_log;
if (!(w_log.Open(logout))) {
Log::Warn << "Couldn't open '"<< logout <<"' for writing." << std::endl;
@@ -146,6 +149,7 @@
for (size_t i = 0; i < seqs.size(); i++)
w_log.Printf("%f\n", list_loglik[i]);
+ */
return true;
}
@@ -165,6 +169,7 @@
std::vector<arma::vec> seqs;
load_vector_list(seqin, seqs);
+ /** need something better
TextWriter w_log;
if (!(w_log.Open(logout))) {
Log::Warn << "Couldn't open '"<< logout <<"' for writing." << std::endl;
@@ -176,6 +181,7 @@
for (size_t i = 0; i < seqs.size(); i++)
w_log.Printf("%f\n", list_loglik[i]);
+ */
return true;
}
Modified: mlpack/trunk/src/mlpack/methods/hmm/mixgaussHMM.cpp
===================================================================
--- mlpack/trunk/src/mlpack/methods/hmm/mixgaussHMM.cpp 2011-10-31 17:12:28 UTC (rev 10094)
+++ mlpack/trunk/src/mlpack/methods/hmm/mixgaussHMM.cpp 2011-10-31 18:50:40 UTC (rev 10095)
@@ -163,6 +163,7 @@
}
bool MixtureofGaussianHMM::SaveProfile(const char* profile, const arma::mat& trans, const std::vector<MixtureGauss>& mixs) {
+ /** need something better
TextWriter w_pro;
if (!(w_pro.Open(profile))) {
mlpack::Log::Warn << "Couldn't open " << profile << " for writing." <<
@@ -183,6 +184,7 @@
print_matrix(w_pro, mixs[i].get_cov(k), s, "%E,");
}
}
+ */
return true;
}
Modified: mlpack/trunk/src/mlpack/methods/hmm/support.cpp
===================================================================
--- mlpack/trunk/src/mlpack/methods/hmm/support.cpp 2011-10-31 17:12:28 UTC (rev 10094)
+++ mlpack/trunk/src/mlpack/methods/hmm/support.cpp 2011-10-31 18:50:40 UTC (rev 10095)
@@ -1,6 +1,5 @@
#include <mlpack/core.h>
#include <mlpack/core/kernels/lmetric.hpp>
-#include "../../core/col/tokenizer.h"
#include "support.hpp"
@@ -26,16 +25,6 @@
}
}
- void print_matrix(TextWriter& writer, const arma::mat& a, const char* msg, const char* format) {
- writer.Printf("%s - Matrix (%d x %d) = \n", msg, a.n_rows, a.n_cols);
- for (size_t j = 0; j < a.n_cols; j++) {
- for (size_t i = 0; i < a.n_rows; i++)
- writer.Printf(format, a(i, j));
-
- writer.Printf("\n");
- }
- }
-
void print_vector(const arma::vec& a, const char* msg) {
printf("%s - Vector (%d) = \n", msg, a.n_elem);
for (size_t i = 0; i < a.n_elem; i++)
@@ -43,13 +32,6 @@
printf("\n");
}
- void print_vector(TextWriter& writer, const arma::vec& a, const char* msg, const char* format) {
- writer.Printf("%s - Vector (%d) = \n", msg, a.n_elem);
- for (size_t i = 0; i < a.n_elem; i++)
- writer.Printf(format, a[i]);
- writer.Printf("\n");
- }
-
double RAND_NORMAL_01() {
double r = 2, u, v;
while (r > 1) {
@@ -272,149 +254,8 @@
}
}
- bool skip_blank(TextLineReader& reader) {
- for (;;) {
- if (!reader.MoreLines())
- return false;
-// char* pos = reader.Peek().begin();
-
- std::string::iterator pos = reader.Peek().begin();
- while (*pos == ' ' || *pos == ',' || *pos == '\t')
- pos++;
-
- if (*pos == '\0' || *pos == '%')
- reader.Gobble();
- else
- break;
- }
- return true;
- }
-
- bool read_matrix(TextLineReader& reader, arma::mat& matrix) {
- if (!skip_blank(reader)) { // EOF ?
- matrix.set_size(0, 0);
- return false;
- } else {
- size_t n_rows = 0;
- size_t n_cols = 0;
- bool is_done;
-
- // How many columns ?
- std::vector<std::string> num_str;
- tokenizeString(reader.Peek(), ", \t", num_str);
- n_cols = num_str.size();
-
- std::vector<double> num_double;
-
- for(;;) { // read each rows
- n_rows++;
- // deprecated: double* point = num_double.AddBack(n_cols);
- std::vector<std::string> num_str;
- tokenizeString(reader.Peek(), ", \t", num_str);
-// reader.Peek().Split(", \t", &num_str);
-
- mlpack::Log::Assert(num_str.size() == n_cols);
-
- std::istringstream is;
- for (size_t i = 0; i < n_cols; i++) {
- double d;
- is.str(num_str[i]);
- if( !(is >> d ) )
- abort();
- num_double.push_back(d);
- }
-
- is_done = false;
-
- reader.Gobble();
-
- for (;;) {
- if (!reader.MoreLines()) {
- is_done = true;
- break;
- }
- std::string::iterator pos = reader.Peek().begin();
-
- while (*pos == ' ' || *pos == '\t')
- pos++;
-
- if (*pos == '\0')
- reader.Gobble();
- else if (*pos == '%') {
- is_done = true;
- break;
- }
- else
- break;
- }
-
- if (is_done) {
- std::vector<double> empty;
- num_double.swap(empty);
-
- //FIXME
-// matrix->Own(num_double.ReleasePtr(), n_cols, n_rows);
-
- return true;
- }
- }
- }
- }
-
- bool read_vector(TextLineReader& reader, arma::vec& vec) {
- if (!skip_blank(reader)) { // EOF ?
- vec.set_size(0);
- return false;
- }
-
- std::vector<double> num_double;
-
- for(;;) { // read each rows
- bool is_done = false;
-
- std::vector<std::string> num_str;
- tokenizeString(reader.Peek(), ", \t", num_str);
-
- // deprecated: double* point = num_double.AddBack(num_str.size());
-
- std::istringstream is;
- for (size_t i = 0; i < num_str.size(); i++) {
- double d;
- is.str(num_str[i]);
- if( !(is >> d) )
- abort();
- }
-
- reader.Gobble();
-
- for (;;) {
- if (!reader.MoreLines()) {
- is_done = true;
- break;
- }
- std::string::iterator pos = reader.Peek().begin();
- while (*pos == ' ' || *pos == '\t')
- pos++;
- if (*pos == '\0')
- reader.Gobble();
- else if (*pos == '%') {
- is_done = true;
- break;
- } else
- break;
- }
-
- if (is_done) {
- //num_double.Trim();
- // FIXME
-// vec->Own(num_double.ReleasePtr(), length);
-
- return true;
- }
- }
- }
-
bool load_matrix_list(const char* filename, std::vector<arma::mat>& matlst) {
+ /** need something better
TextLineReader reader;
if (!(reader.Open(filename)))
return false;
@@ -425,11 +266,13 @@
else
break;
} while (1);
+ */
return true;
}
bool load_vector_list(const char* filename, std::vector<arma::vec>& veclst) {
+ /** need something better
TextLineReader reader;
if (!(reader.Open(filename)))
return false;
@@ -441,6 +284,7 @@
else
break;
} while (1);
+ */
return true;
}
Modified: mlpack/trunk/src/mlpack/methods/hmm/support.hpp
===================================================================
--- mlpack/trunk/src/mlpack/methods/hmm/support.hpp 2011-10-31 17:12:28 UTC (rev 10094)
+++ mlpack/trunk/src/mlpack/methods/hmm/support.hpp 2011-10-31 18:50:40 UTC (rev 10095)
@@ -31,15 +31,9 @@
/** Print a matrix to stdout */
void print_matrix(const arma::mat& a, const char* msg);
- /** Print a matrix to a TextWriter object */
- void print_matrix(TextWriter& writer, const arma::mat& a, const char* msg, const char* format = "%f,");
-
/** Print a vector to stdout */
void print_vector(const arma::vec& a, const char* msg);
- /** Print a vector to a TextWriter object */
- void print_vector(TextWriter& writer, const arma::vec& a, const char* msg, const char* format = "%f,");
-
/** Compute the centroids and label the samples by K-means algorithm */
bool kmeans(const std::vector<arma::mat>& data, size_t num_clusters,
std::vector<size_t>& labels_, std::vector<arma::vec>& centroids_,
Modified: mlpack/trunk/src/mlpack/methods/hmm/viterbi.cpp
===================================================================
--- mlpack/trunk/src/mlpack/methods/hmm/viterbi.cpp 2011-10-31 17:12:28 UTC (rev 10094)
+++ mlpack/trunk/src/mlpack/methods/hmm/viterbi.cpp 2011-10-31 18:50:40 UTC (rev 10095)
@@ -102,6 +102,7 @@
std::vector<arma::mat> seqs;
load_matrix_list(seqin, seqs);
+ /** need something better
TextWriter w_state;
if (!(w_state.Open(stateout))) {
Log::Warn << "Couldn't open '" << stateout << "' for writing." << std::endl;
@@ -117,6 +118,7 @@
sprintf(s, "%% viterbi state sequence %zu", i);
print_vector(w_state, states, s, "%.0f,");
}
+ */
return true;
}
@@ -136,6 +138,7 @@
std::vector<arma::mat> seqs;
load_matrix_list(seqin, seqs);
+ /** need something better
TextWriter w_state;
if (!(w_state.Open(stateout))) {
Log::Warn << "Couldn't open '" << stateout << "' for writing." << std::endl;
@@ -150,6 +153,7 @@
sprintf(s, "%% viterbi state sequence %zu", i);
print_vector(w_state, states, s, "%.0f,");
}
+ */
return true;
}
@@ -170,6 +174,7 @@
std::vector<arma::vec> seqs;
load_vector_list(seqin, seqs);
+ /** need something better
TextWriter w_state;
if (!(w_state.Open(stateout))) {
Log::Warn << "Couldn't open '" << stateout << "' for writing." << std::endl;
@@ -185,6 +190,7 @@
sprintf(s, "%% viterbi state sequence %zu", i);
print_vector(w_state, states, s, "%.0f,");
}
+ */
return true;
}
More information about the mlpack-svn
mailing list