Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/moses-smt/vowpal_wabbit.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHal Daume III <me@hal3.name>2013-12-31 11:35:45 +0400
committerHal Daume III <me@hal3.name>2013-12-31 11:35:45 +0400
commit400f3cf423d0d4d25965682313153418cf2d3ca4 (patch)
tree1b8a3695022b7484ace9bb86075440c8eb1cf409 /vowpalwabbit/parse_args.cc
parentbd2aca45ab9520b7c1f2f53191a7c5e9426404bc (diff)
parente10879fc0d693069c276de069d4e27bc1719f9dc (diff)
Merge branch 'master' of git://github.com/JohnLangford/vowpal_wabbit
Diffstat (limited to 'vowpalwabbit/parse_args.cc')
-rw-r--r--vowpalwabbit/parse_args.cc16
1 files changed, 14 insertions, 2 deletions
diff --git a/vowpalwabbit/parse_args.cc b/vowpalwabbit/parse_args.cc
index b3ea30a2..3486baf7 100644
--- a/vowpalwabbit/parse_args.cc
+++ b/vowpalwabbit/parse_args.cc
@@ -33,6 +33,7 @@ license as described in the file LICENSE.
#include "rand48.h"
#include "parse_args.h"
#include "binary.h"
+#include "lrq.h"
#include "autolink.h"
using namespace std;
@@ -58,7 +59,7 @@ bool valid_ns(char c)
void parse_affix_argument(vw&all, string str) {
if (str.length() == 0) return;
- char*cstr = new char[str.length()+1];
+ char* cstr = (char*)calloc(str.length()+1, sizeof(char));
strcpy(cstr, str.c_str());
char*p = strtok(cstr, ",");
@@ -93,7 +94,7 @@ void parse_affix_argument(vw&all, string str) {
p = strtok(NULL, ",");
}
- delete cstr;
+ free(cstr);
}
vw* parse_args(int argc, char *argv[])
@@ -213,6 +214,12 @@ vw* parse_args(int argc, char *argv[])
("rank", po::value<uint32_t>(&(all->rank)), "rank for matrix factorization.")
;
+ po::options_description lrq_opt("Low Rank Quadratic options");
+ lrq_opt.add_options()
+ ("lrq", po::value<vector<string> > (), "use low rank quadratic features")
+ ("lrqdropout", "use dropout training for low rank quadratic features")
+ ;
+
po::options_description multiclass_opt("Multiclass options");
multiclass_opt.add_options()
("oaa", po::value<size_t>(), "Use one-against-all multiclass learning with <k> labels")
@@ -269,6 +276,7 @@ vw* parse_args(int argc, char *argv[])
.add(holdout_opt)
.add(namespace_opt)
.add(mf_opt)
+ .add(lrq_opt)
.add(multiclass_opt)
.add(active_opt)
.add(cluster_opt)
@@ -813,6 +821,9 @@ vw* parse_args(int argc, char *argv[])
if (vm.count("binary") || vm_file.count("binary"))
all->l = BINARY::setup(*all, to_pass_further, vm, vm_file);
+ if (vm.count("lrq") || vm_file.count("lrq"))
+ all->l = LRQ::setup(*all, to_pass_further, vm, vm_file);
+
if(vm.count("oaa") || vm_file.count("oaa") ) {
if (got_mc) { cerr << "error: cannot specify multiple MC learners" << endl; throw exception(); }
@@ -1029,6 +1040,7 @@ namespace VW {
{
finalize_regressor(all, all.final_regressor_name);
all.l->finish();
+ delete all.l;
if (all.reg.weight_vector != NULL)
free(all.reg.weight_vector);
free_parser(all);