diff options
| author | Gertjan van den Burg <burg@ese.eur.nl> | 2014-03-21 16:09:34 +0100 |
|---|---|---|
| committer | Gertjan van den Burg <gertjanvandenburg@gmail.com> | 2014-05-19 22:39:28 -0700 |
| commit | 45ebfa383f3416cd99ada5355df1e3cc5ff9b141 (patch) | |
| tree | 64502eb16f648f2965ed8c88f2fb6857d0887d02 /src/trainMSVMMajdataset.c | |
| parent | work on regularization term with nonlinearity (diff) | |
| download | gensvm-45ebfa383f3416cd99ada5355df1e3cc5ff9b141.tar.gz gensvm-45ebfa383f3416cd99ada5355df1e3cc5ff9b141.zip | |
reached basic functionality of nonlinear training and grid search
Diffstat (limited to 'src/trainMSVMMajdataset.c')
| -rw-r--r-- | src/trainMSVMMajdataset.c | 42 |
1 files changed, 21 insertions, 21 deletions
diff --git a/src/trainMSVMMajdataset.c b/src/trainMSVMMajdataset.c index e9f8b8e..1929584 100644 --- a/src/trainMSVMMajdataset.c +++ b/src/trainMSVMMajdataset.c @@ -98,7 +98,8 @@ int main(int argc, char **argv) struct Queue *q = Malloc(struct Queue, 1); make_queue(training, q, train_data, test_data); - srand(time(NULL)); + // srand(time(NULL)); + srand(123456); note("Starting training\n"); if (training->traintype == TT) @@ -163,6 +164,23 @@ void parse_command_line(int argc, char **argv, char *input_filename) strcpy(input_filename, argv[i]); } +KernelType parse_kernel_str(char *kernel_line) +{ + if (str_endswith(kernel_line, "LINEAR\n")) { + return K_LINEAR; + } else if (str_endswith(kernel_line, "POLY\n")) { + return K_POLY; + } else if (str_endswith(kernel_line, "RBF\n")) { + return K_RBF; + } else if (str_endswith(kernel_line, "SIGMOID\n")) { + return K_SIGMOID; + } else { + fprintf(stderr, "Unknown kernel specified on line: %s\n", + kernel_line); + exit(1); + } +} + /** * @brief Read the Training struct from file * @@ -254,25 +272,7 @@ void read_training_from_file(char *input_filename, struct Training *training) "takes one value. Additional " "fields are ignored.\n"); } else if (str_startswith(buffer, "kernel:")) { - nr = all_longs_str(buffer, 7, lparams); - if (nr > 1) - fprintf(stderr, "Field \"kernel\" only takes " - "one value. Additional " - "fields are ignored.\n"); - switch (lparams[0]) { - case 0: - training->kerneltype = K_LINEAR; - break; - case 1: - training->kerneltype = K_POLY; - break; - case 2: - training->kerneltype = K_RBF; - break; - case 3: - training->kerneltype = K_SIGMOID; - break; - } + training->kerneltype = parse_kernel_str(buffer); } else if (str_startswith(buffer, "gamma:")) { nr = all_doubles_str(buffer, 6, params); if (training->kerneltype == K_LINEAR) { @@ -289,7 +289,7 @@ void read_training_from_file(char *input_filename, struct Training *training) nr = all_doubles_str(buffer, 5, params); if (training->kerneltype == K_LINEAR || training->kerneltype == K_RBF) { - fprintf(stderr, "Field \"coef\" ignored with" + fprintf(stderr, "Field \"coef\" ignored with " "specified kernel.\n"); training->Nc = 0; break; |
