summaryrefslogtreecommitdiff
path: root/train.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'train.cpp')
-rw-r--r--train.cpp27
1 files changed, 18 insertions, 9 deletions
diff --git a/train.cpp b/train.cpp
index 4b8439a..07f9edc 100644
--- a/train.cpp
+++ b/train.cpp
@@ -27,7 +27,9 @@ int train(DataProvider &dp) {
LOG(INFO)<<"Training started";
dp.getAllDataSet(D);
LOG(INFO)<<"Read "<<D.getSize()<<" entries with "<< D.getfSize()<<" features";
- LOG(INFO)<<"C: "<<C;
+ LOG(INFO)<<"C: "<<C<<" ,iter: "<<maxiter<<" ,prec: "<<prec;
+ LOG(INFO)<<"cg_maxiter: "<<cg_maxiter<<" ,cg_prec:"<<cg_prec<<" ,ls_maxiter: "<<ls_maxiter<<" ,ls_prec: "<<ls_prec;
+
rsvm->train(D);
LOG(INFO)<<"Training finished,saving model";
@@ -109,7 +111,13 @@ int main(int argc, char **argv) {
("model,m", po::value<string>(), "set input model file")
("output,o", po::value<string>(), "set output model/prediction file")
("feature,i", po::value<string>(), "set input feature file")
- ("c,c",po::value<double>(),"trades margin size against training error");
+ ("c,c",po::value<double>(),"trades margin size against training error")
+ ("iter",po::value<int>(),"iter main")
+ ("prec",po::value<double>(),"prec main")
+ ("cg_iter",po::value<int>(),"iter conjugate gradient")
+ ("cg_prec",po::value<double>(),"prec conjugate gradient")
+ ("ls_iter",po::value<int>(),"iter line search")
+ ("ls_prec",po::value<double>(),"prec line search");
// Parsing program options
po::store(po::parse_command_line(argc, argv, desc), vm);
@@ -127,14 +135,15 @@ int main(int argc, char **argv) {
el::Loggers::reconfigureLogger("default", defaultConf);
mainFunc mainf;
- if (vm.count("single"))
- RidList::single=true;
- else
- RidList::single=false;
+ RidList::single=vm.count("single")>0;
if (vm.count("train")) {
- if (vm.count("c")) {
- C=vm["c"].as<double>();
- }
+ if (vm.count("c")) { C=vm["c"].as<double>(); }
+ if (vm.count("iter")) { maxiter=vm["iter"].as<int>(); }
+ if (vm.count("prec")) { prec=vm["prec"].as<double>(); }
+ if (vm.count("cg_iter")) { cg_maxiter=vm["cg_iter"].as<int>(); }
+ if (vm.count("cg_prec")) { cg_prec=vm["cg_prec"].as<double>(); }
+ if (vm.count("ls_iter")) { ls_maxiter=vm["ls_iter"].as<int>(); }
+ if (vm.count("ls_prec")) { ls_prec=vm["ls_prec"].as<double>(); }
mainf = &train;
}
else if (vm.count("validate")||vm.count("predict")) {