From f35c51af17a306603a1b42e2d182f9b1c3f5151a Mon Sep 17 00:00:00 2001
From: Patrick Simianer 
Date: Thu, 16 Jul 2015 13:10:08 +0200
Subject: fixed conf. options
---
 training/dtrain/dtrain.cc |  5 +++--
 training/dtrain/dtrain.h  | 47 ++++++++++++++++++++++++++++++-----------------
 2 files changed, 33 insertions(+), 19 deletions(-)
(limited to 'training')
diff --git a/training/dtrain/dtrain.cc b/training/dtrain/dtrain.cc
index 97df530b..42a771e0 100644
--- a/training/dtrain/dtrain.cc
+++ b/training/dtrain/dtrain.cc
@@ -10,7 +10,8 @@ main(int argc, char** argv)
 {
   // get configuration
   po::variables_map conf;
-  dtrain_init(argc, argv, &conf);
+  if (!dtrain_init(argc, argv, &conf))
+    return 1;
   const size_t k              = conf["k"].as();
   const string score_name     = conf["score"].as();
   const size_t N              = conf["N"].as();
@@ -66,7 +67,7 @@ main(int argc, char** argv)
 
   cerr << _p4;
   // output configuration
-  cerr << "dtrain" << endl << "Parameters:" << endl;
+  cerr << "Parameters:" << endl;
   cerr << setw(25) << "k " << k << endl;
   cerr << setw(25) << "score " << "'" << score_name << "'" << endl;
   cerr << setw(25) << "N " << N << endl;
diff --git a/training/dtrain/dtrain.h b/training/dtrain/dtrain.h
index 2636fa89..1d07defa 100644
--- a/training/dtrain/dtrain.h
+++ b/training/dtrain/dtrain.h
@@ -43,44 +43,57 @@ inline ostream& _np(ostream& out) { return out << resetiosflags(ios::showpos); }
 inline ostream& _p(ostream& out)  { return out << setiosflags(ios::showpos); }
 inline ostream& _p4(ostream& out) { return out << setprecision(4); }
 
-void
+bool
 dtrain_init(int argc, char** argv, po::variables_map* conf)
 {
-  po::options_description ini("Configuration File Options");
-  ini.add_options()
+  po::options_description opts("Configuration File Options");
+  opts.add_options()
     ("bitext,b",          po::value(),                                                  "bitext")
     ("decoder_conf,C",    po::value(),                          "configuration file for decoder")
-    ("iterations,T",      po::value()->default_value(10),   "number of iterations T (per shard)")
+    ("iterations,T",      po::value()->default_value(15),   "number of iterations T (per shard)")
     ("k",                 po::value()->default_value(100),                  "size of kbest list")
-    ("learning_rate,l",   po::value()->default_value(1.0),                     "learning rate")
+    ("learning_rate,l",   po::value()->default_value(0.00001),                 "learning rate")
     ("l1_reg,r",          po::value()->default_value(0.),         "l1 regularization strength")
-    ("margin,m",          po::value()->default_value(0.),       "margin for margin perceptron")
-    ("score,s",           po::value()->default_value("nakov"),       "per-sentence BLEU approx.")
+    ("margin,m",          po::value()->default_value(1.0),      "margin for margin perceptron")
+    ("score,s",           po::value()->default_value("chiang"),      "per-sentence BLEU approx.")
     ("N",                 po::value()->default_value(4),              "N for BLEU approximation")
     ("input_weights,w",   po::value(),                                      "input weights file")
-    ("average,a",         po::value()->default_value(false),              "output average weights")
-    ("keep,K",            po::value()->default_value(false),  "output a weight file per iteration")
+    ("average,a",         po::bool_switch()->default_value(true),               "output average weights")
+    ("keep,K",            po::bool_switch()->default_value(false),  "output a weight file per iteration")
     ("output,o",          po::value()->default_value("-"), "output weights file, '-' for STDOUT")
     ("print_weights,P",   po::value()->default_value("EgivenFCoherent SampleCountF CountEF MaxLexFgivenE MaxLexEgivenF IsSingletonF IsSingletonFE Glue WordPenalty PassThrough LanguageModel LanguageModel_OOV"),
                                                          "list of weights to print after each iteration");
-  po::options_description cl("Command Line Options");
-  cl.add_options()
-    ("conf,c", po::value(), "dtrain configuration file");
-  cl.add(ini);
-  po::store(parse_command_line(argc, argv, cl), *conf);
+  po::options_description clopts("Command Line Options");
+  clopts.add_options()
+    ("conf,c", po::value(),                    "dtrain configuration file")
+    ("help,h", po::bool_switch()->default_value(false),          "display options");
+  opts.add(clopts);
+  po::store(parse_command_line(argc, argv, opts), *conf);
+  cerr << "dtrain" << endl << endl;
+  if (conf->count("help")) {
+    cerr << opts << endl;
+
+    return false;
+  }
   if (conf->count("conf")) {
     ifstream f((*conf)["conf"].as().c_str());
-    po::store(po::parse_config_file(f, ini), *conf);
+    po::store(po::parse_config_file(f, opts), *conf);
   }
   po::notify(*conf);
   if (!conf->count("decoder_conf")) {
     cerr << "Missing decoder configuration." << endl;
-    assert(false);
+    cerr << opts << endl;
+
+    return false;
   }
   if (!conf->count("bitext")) {
     cerr << "No input given." << endl;
-    assert(false);
+    cerr << opts << endl;
+
+    return false;
   }
+
+  return true;
 }
 
 } // namespace
-- 
cgit v1.2.3