diff options
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; |
