From 69e079941e2612cb6379a97126b3d33caef66af8 Mon Sep 17 00:00:00 2001 From: tqchen Date: Sat, 10 Jan 2015 23:46:29 -0800 Subject: [PATCH] allow pred to stdout --- src/xgboost_main.cpp | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/xgboost_main.cpp b/src/xgboost_main.cpp index 9440c791a..db37cbd1d 100644 --- a/src/xgboost_main.cpp +++ b/src/xgboost_main.cpp @@ -32,7 +32,7 @@ class BoostLearnTask { } } // do not save anything when save to stdout - if (model_out == "stdout") { + if (model_out == "stdout" || name_pred == "stdout") { this->SetParam("silent", "1"); save_period = 0; } @@ -235,12 +235,17 @@ class BoostLearnTask { std::vector preds; if (!silent) printf("start prediction...\n"); learner.Predict(*data, pred_margin != 0, &preds, ntree_limit); - if (!silent) printf("writing prediction to %s\n", name_pred.c_str()); - FILE *fo = utils::FopenCheck(name_pred.c_str(), "w"); - for (size_t i = 0; i < preds.size(); i++) { - fprintf(fo, "%f\n", preds[i]); + if (!silent) printf("writing prediction to %s\n", name_pred.c_str()); + FILE *fo; + if (name_pred != "stdout") { + fo = utils::FopenCheck(name_pred.c_str(), "w"); + } else { + fo = stdout; } - fclose(fo); + for (size_t i = 0; i < preds.size(); ++i) { + fprintf(fo, "%g\n", preds[i]); + } + if (fo != stdout) fclose(fo); } private: /*! \brief whether silent */