#include"ranksvm.h" #include"ranksvmtn.h" #include"rankmisc.h" #include"../tools/matrixIO.h" #include #include #include using namespace Eigen; using namespace std; double C=1e-4;// Compensating & scaling // Main terminating criteria int maxiter = 1; // max iteration count double prec=1e-15; // precision // conjugate gradient double cg_prec=1e-20; // precision int cg_maxiter = 1000; int ls_maxiter = 20; // line search double ls_prec=1e-20; // precision double ls_turb=1e-30; // purturbation int RSVM::saveModel(const string fname){ std::ofstream fout(fname.c_str()); fout<getName()<fsize<model.weight); fout<model.beta<>type; fin>>fsize; RSVM* rsvm; if (type=="TN") rsvm = new RSVMTN(); if (type=="L1") rsvm = new RSVML1(); if (type=="BH") rsvm = new RSVMBH(); rsvm->fsize=fsize; SVMModel model; Eigen::read_stream(fin, model.weight); fin>>model.beta; rsvm->setModel(model); return rsvm; } int RSVM::setModel(const SVMModel &model) { if (model.weight.rows()!=fsize) LOG(FATAL) << "Feature size mismatch: "<model.weight=model.weight; this->model.beta=model.beta; return 0; }