| 228 | |
| 229 | |
| 230 | void run_segmenter(int argc, char **argv) |
| 231 | { |
| 232 | if(argc < 4){ |
| 233 | fprintf(stderr, "usage: %s %s [train/test/valid] [cfg] [weights (optional)]\n", argv[0], argv[1]); |
| 234 | return; |
| 235 | } |
| 236 | |
| 237 | char *gpu_list = find_char_arg(argc, argv, "-gpus", 0); |
| 238 | int *gpus = 0; |
| 239 | int gpu = 0; |
| 240 | int ngpus = 0; |
| 241 | if(gpu_list){ |
| 242 | printf("%s\n", gpu_list); |
| 243 | int len = strlen(gpu_list); |
| 244 | ngpus = 1; |
| 245 | int i; |
| 246 | for(i = 0; i < len; ++i){ |
| 247 | if (gpu_list[i] == ',') ++ngpus; |
| 248 | } |
| 249 | gpus = calloc(ngpus, sizeof(int)); |
| 250 | for(i = 0; i < ngpus; ++i){ |
| 251 | gpus[i] = atoi(gpu_list); |
| 252 | gpu_list = strchr(gpu_list, ',')+1; |
| 253 | } |
| 254 | } else { |
| 255 | gpu = gpu_index; |
| 256 | gpus = &gpu; |
| 257 | ngpus = 1; |
| 258 | } |
| 259 | |
| 260 | int cam_index = find_int_arg(argc, argv, "-c", 0); |
| 261 | int clear = find_arg(argc, argv, "-clear"); |
| 262 | int display = find_arg(argc, argv, "-display"); |
| 263 | char *data = argv[3]; |
| 264 | char *cfg = argv[4]; |
| 265 | char *weights = (argc > 5) ? argv[5] : 0; |
| 266 | char *filename = (argc > 6) ? argv[6]: 0; |
| 267 | if(0==strcmp(argv[2], "test")) predict_segmenter(data, cfg, weights, filename); |
| 268 | else if(0==strcmp(argv[2], "train")) train_segmenter(data, cfg, weights, gpus, ngpus, clear, display); |
| 269 | else if(0==strcmp(argv[2], "demo")) demo_segmenter(data, cfg, weights, cam_index, filename); |
| 270 | } |
| 271 | |
| 272 |
no test coverage detected