From a4c1f94ddfb070776f64c01bb70f0a51c374e3f9 Mon Sep 17 00:00:00 2001 From: Gertjan van den Burg Date: Mon, 5 Aug 2013 18:45:33 +0200 Subject: remove debug print statements and fix group weight calculation --- src/libMSVMMaj.c | 78 +++++--------------------------------------------------- 1 file changed, 6 insertions(+), 72 deletions(-) diff --git a/src/libMSVMMaj.c b/src/libMSVMMaj.c index a54ab3a..b1fecf7 100644 --- a/src/libMSVMMaj.c +++ b/src/libMSVMMaj.c @@ -75,7 +75,6 @@ void calculate_errors(struct Model *model, struct Data *data, double *ZV) long m = model->m; long K = model->K; - //info("\t\tCalculating ZV ... "); cblas_dgemm( CblasRowMajor, CblasNoTrans, @@ -91,10 +90,8 @@ void calculate_errors(struct Model *model, struct Data *data, double *ZV) 0.0, ZV, K-1); - //info("done\n"); + Memset(model->Q, double, n*K); - - //info("\t\tCalculating qs ... "); for (i=0; iepsilon); info("\n"); - //info("Z:\n"); - //print_matrix(data->Z, n, m+1); - - //info("Generating simplex\n"); simplex_gen(model->K, model->U); - //info("Generating simplex diff\n"); simplex_diff(model, data); - //info("Generating category matrix\n"); category_matrix(model, data); // Initialize V - //info("Initializing V\n"); for (i=0; iV, K-1, i, j, -1.0+2.0*rnd()); - matrix_set(model->V, K-1, i, j, 1.0); + matrix_set(model->V, K-1, i, j, -1.0+2.0*rnd()); - //info("Getting initial loss\n"); L = get_msvmmaj_loss(model, data, ZV); Lbar = L + 2.0*model->epsilon*L; - info("Initial loss: %15.16f\n", L); + while ((it < MAX_ITER) && (Lbar - L)/L > model->epsilon) { - /* - info("################## Before %i ################\n", it); - info("V:\n"); - print_matrix(model->V, m+1, K-1); - info("Vbar:\n"); - print_matrix(model->Vbar, m+1, K-1); - info("Q:\n"); - print_matrix(model->Q, n, K); - info("H:\n"); - print_matrix(model->H, n, K); - info("ZV:\n"); - print_matrix(ZV, n, K-1); - info("ClassIdx:\n"); - for (i=0; iV, m+1, K-1); - info("Vbar:\n"); - print_matrix(model->Vbar, m+1, K-1); - info("Q:\n"); - print_matrix(model->Q, n, K); - info("H:\n"); - print_matrix(model->H, n, K); - info("ZV:\n"); - print_matrix(ZV, n, K-1); - info("ClassIdx:\n"); - for (i=0; i 50) step_doubling(model); @@ -382,7 +324,6 @@ void msvmmaj_update(struct Model *model, struct Data *data, const double a2g2 = 0.25*p*(2.0*p - 1.0)*pow((kappa+1.0)/2.0,p-2.0); const double in = 1.0/((double) n); - //info("\tCalculating class idx and omega ... "); for (i=0; irho[i] = 1.0; } else if (model->weight_idx == 2) { - groups = Malloc(int, K); + groups = Calloc(int, K); for (i=0; iy[i]-1]++; } @@ -646,5 +580,5 @@ void initialize_weights(struct Data *data, struct Model *model) fprintf(stderr, "Unknown weight specification.\n"); exit(1); } -} +} -- cgit v1.2.3