From c69b39a9f149cc6b5c7270d7d864fb677bc83b34 Mon Sep 17 00:00:00 2001 From: Joe Zhao Date: Mon, 11 May 2015 18:38:39 +0800 Subject: RidFile tested --- model/ranksvmtn.cpp | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) (limited to 'model/ranksvmtn.cpp') diff --git a/model/ranksvmtn.cpp b/model/ranksvmtn.cpp index b82ce64..c2ca639 100644 --- a/model/ranksvmtn.cpp +++ b/model/ranksvmtn.cpp @@ -6,12 +6,13 @@ using namespace std; using namespace Eigen; -const double C=1e-2; // Compensating & scaling +const double C=1e-5; // Compensating & scaling // Main terminating criteria const int maxiter = 10; // max iteration count -const double prec=1e-4; // precision +const double prec=1e-10; // precision // conjugate gradient const double cg_prec=1e-10; // precision +const int cg_maxiter = 30; // line search const double line_prec=1e-10; // precision const double line_turb=1e-15; // purturbation @@ -64,6 +65,11 @@ int cg_solve(const MatrixXd &D,const vector &rank,const VectorXd &corr,cons x=x+p*alpha; res=res-q*alpha; ++step; + if (step > cg_maxiter) + { + LOG(INFO) << "CG force terminated by maxiter"; + break; + } r_2=r_1; } return 0; @@ -138,6 +144,7 @@ int line_search(const VectorXd &w,const MatrixXd &D,const VectorXd &corr,const v VectorXd grad; VectorXd Hs; vector rank(D.rows()); + int iter = 0; for (int i=0;i cg_maxiter) + { + LOG(INFO) << "line search force terminated by maxiter"; + break; + } } return 0; } @@ -179,14 +192,12 @@ int train_orig(int fsize, MatrixXd &D,const vector &A1,const vector &A iter+=1; if (iter> maxiter) { - LOG(INFO)<< "Maxiter :"< &dat = D.getData(); for (i=0;irank>0?0.5:-0.5; - for (j = 0; j < D.getfSize(); ++j) - Data(i, j) = dat[i]->feature(j); + + for (j = 0; j < D.getfSize(); ++j){ + Data(i, j) = dat[i]->feature(j);} + } i=j=0; while (i