aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjvech <jmvalenciae@unal.edu.co>2023-10-21 21:43:36 -0500
committerjvech <jmvalenciae@unal.edu.co>2023-10-21 21:43:36 -0500
commit17b2cf8dc274f950865911185fc4c6a9ccf915d5 (patch)
tree81f11089540264ebdf187ba028a58ed7f57a34c3 /src
parent8abcac7b3b42609f349b8a9cb132bae9746ba576 (diff)
setup: man page improved
Documentation: Example sections was improved Files sections was added Fixes: default config filepath was fixed
Diffstat (limited to 'src')
-rw-r--r--src/main.c12
-rw-r--r--src/util.c13
2 files changed, 17 insertions, 8 deletions
diff --git a/src/main.c b/src/main.c
index 210db7e..8718a66 100644
--- a/src/main.c
+++ b/src/main.c
@@ -194,6 +194,7 @@ struct Cost load_loss(struct Configs cfg)
}
int main(int argc, char *argv[]) {
+ char default_config_path[512];
struct Configs ml_configs = {
.epochs = 100,
.alpha = 1e-5,
@@ -202,11 +203,18 @@ int main(int argc, char *argv[]) {
.out_filepath = NULL,
};
- // Try different config paths
- load_config(&ml_configs, 3, "~/.config/ml/ml.cfg", "~/.ml/ml.cfg", ml_configs.config_filepath);
+ // First past to check if --config option was put
+ util_load_cli(&ml_configs, argc, argv);
+ optind = 1;
+ // Load configs with different possible paths
+ sprintf(default_config_path, "%s/%s", getenv("HOME"), ".config/ml/ml.cfg");
+ load_config(&ml_configs, 2, ml_configs.config_filepath, default_config_path);
+
+ // re-read cli options again, to overwrite file configuration options
util_load_cli(&ml_configs, argc, argv);
argc -= optind;
argv += optind;
+
Layer *network = load_network(ml_configs);
Array X, y;
diff --git a/src/util.c b/src/util.c
index 8c7ec14..cd87d5c 100644
--- a/src/util.c
+++ b/src/util.c
@@ -83,7 +83,7 @@ void version()
"the Free Software Foundation, either version 3 of the License, or\n"
"(at your option) any later version.\n\n"
);
- printf("Written by vech\n");
+ printf("Written by jvech\n");
exit(0);
}
@@ -93,17 +93,14 @@ void usage(int exit_code)
fprintf(fp,
"Usage: ml train [Options] JSON_FILE\n"
" or: ml predict [-o FILE] FILE\n"
- "Train and predict json data\n"
"\n"
"Options:\n"
" -h, --help Show this message\n"
" -a, --alpha=ALPHA Learning rate (only works with train)\n"
" -e, --epochs=EPOCHS Epochs to train the model (only works with train)\n"
" -o, --output=FILE Output file (only works with predict)\n"
+ " -c, --config=FILE Configuration filepath [default=~/.config/ml/ml.cfg]\n"
"\n"
- "Examples:\n"
- " $ ml train -e 150 -a 1e-4 housing.json\n"
- " $ ml predict housing.json -o predictions.json\n"
);
exit(exit_code);
}
@@ -117,12 +114,13 @@ void util_load_cli(struct Configs *ml, int argc, char *argv[])
{"epochs", required_argument, 0, 'e'},
{"alpha", required_argument, 0, 'a'},
{"output", required_argument, 0, 'o'},
+ {"config", required_argument, 0, 'c'},
{0, 0, 0, 0 },
};
int c;
while (1) {
- c = getopt_long(argc, argv, "hve:a:o:i:l:", long_opts, NULL);
+ c = getopt_long(argc, argv, "hvc:e:a:o:i:l:", long_opts, NULL);
if (c == -1) {
break;
@@ -137,6 +135,9 @@ void util_load_cli(struct Configs *ml, int argc, char *argv[])
case 'o':
ml->out_filepath = optarg;
break;
+ case 'c':
+ ml->config_filepath = optarg;
+ break;
case 'h':
usage(0);
case 'v':
Feel free to download, copy and edit any repo