aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGertjan van den Burg <gertjanvandenburg@gmail.com>2017-02-21 18:32:35 -0500
committerGertjan van den Burg <gertjanvandenburg@gmail.com>2017-02-21 18:32:35 -0500
commit75182ca28c2b481420fe42e6fc469075ec6b4cdf (patch)
tree3c5e087525379c2e5b674c544198ffc5468e523c /src
parentKeep track of elapsed iterations in training (diff)
downloadgensvm-75182ca28c2b481420fe42e6fc469075ec6b4cdf.tar.gz
gensvm-75182ca28c2b481420fe42e6fc469075ec6b4cdf.zip
Keep a status of training
Diffstat (limited to 'src')
-rw-r--r--src/gensvm_base.c1
-rw-r--r--src/gensvm_optimize.c12
2 files changed, 11 insertions, 2 deletions
diff --git a/src/gensvm_base.c b/src/gensvm_base.c
index 10e4435..791cd3e 100644
--- a/src/gensvm_base.c
+++ b/src/gensvm_base.c
@@ -116,6 +116,7 @@ struct GenModel *gensvm_init_model()
model->kernel_eigen_cutoff = 1e-8;
model->max_iter = 1000000000;
model->elapsed_iter = -1;
+ model->status = -1;
model->V = NULL;
model->Vbar = NULL;
diff --git a/src/gensvm_optimize.c b/src/gensvm_optimize.c
index b6bc164..df46ec4 100644
--- a/src/gensvm_optimize.c
+++ b/src/gensvm_optimize.c
@@ -104,13 +104,21 @@ void gensvm_optimize(struct GenModel *model, struct GenData *data)
it++;
}
+ // status == 0 means training was successful
+ model->status = 0;
+
// print warnings if necessary
- if (L > Lbar)
+ if (L > Lbar) {
err("[GenSVM Warning]: Negative step occurred in "
"majorization.\n");
- if (it >= model->max_iter)
+ model->status = 1;
+ }
+
+ if (it >= model->max_iter) {
err("[GenSVM Warning]: maximum number of iterations "
"reached.\n");
+ model->status = 2;
+ }
// print final iteration count and loss
note("Optimization finished, iter = %li, loss = %15.16f, "