aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGertjan van den Burg <gertjanvandenburg@gmail.com>2017-02-21 18:32:00 -0500
committerGertjan van den Burg <gertjanvandenburg@gmail.com>2017-02-21 18:32:00 -0500
commitfbd7f3d229d167a1bf5ea483b2d5324356b86831 (patch)
tree71e14b7c6ef858d390859978a01da4c30511070d
parentallow max_iter to be set in the model (diff)
downloadgensvm-fbd7f3d229d167a1bf5ea483b2d5324356b86831.tar.gz
gensvm-fbd7f3d229d167a1bf5ea483b2d5324356b86831.zip
Keep track of elapsed iterations in training
-rw-r--r--include/gensvm_base.h2
-rw-r--r--src/gensvm_base.c1
-rw-r--r--src/gensvm_optimize.c3
3 files changed, 6 insertions, 0 deletions
diff --git a/include/gensvm_base.h b/include/gensvm_base.h
index adef2a9..e13deb9 100644
--- a/include/gensvm_base.h
+++ b/include/gensvm_base.h
@@ -129,6 +129,8 @@ struct GenModel {
///< vector of instance weights
double training_error;
///< loss function value after training has finished
+ long elapsed_iter;
+ ///< number of elapsed iterations in training
char *data_file;
///< filename of the data
KernelType kerneltype;
diff --git a/src/gensvm_base.c b/src/gensvm_base.c
index 6bb4367..10e4435 100644
--- a/src/gensvm_base.c
+++ b/src/gensvm_base.c
@@ -115,6 +115,7 @@ struct GenModel *gensvm_init_model()
model->kerneltype = K_LINEAR;
model->kernel_eigen_cutoff = 1e-8;
model->max_iter = 1000000000;
+ model->elapsed_iter = -1;
model->V = NULL;
model->Vbar = NULL;
diff --git a/src/gensvm_optimize.c b/src/gensvm_optimize.c
index fff6768..b6bc164 100644
--- a/src/gensvm_optimize.c
+++ b/src/gensvm_optimize.c
@@ -123,6 +123,9 @@ void gensvm_optimize(struct GenModel *model, struct GenData *data)
// store the training error in the model
model->training_error = (Lbar - L)/L;
+ // store the iteration count in the model
+ model->elapsed_iter = it - 1;
+
// free the workspace
gensvm_free_work(work);
}