5 void train_regressor(
char *datacfg,
char *cfgfile,
char *weightfile,
int *gpus,
int ngpus,
int clear)
12 printf(
"%d\n", ngpus);
17 for(i = 0; i < ngpus; ++i){
33 char *backup_directory =
option_find_str(options,
"backup",
"/backup/");
34 char *train_list =
option_find_str(options,
"train",
"data/train.list");
39 printf(
"%d\n", plist->
size);
69 int epoch = (*net->
seen)/N;
73 pthread_join(load_thread, 0);
77 printf(
"Loaded: %lf seconds\n",
sec(clock()-time));
85 loss = train_networks(nets, ngpus, train, 4);
90 if(avg_loss == -1) avg_loss = loss;
91 avg_loss = avg_loss*.9 + loss*.1;
92 printf(
"%ld, %.3f: %f, %f avg, %f rate, %lf seconds, %ld images\n",
get_current_batch(net), (
float)(*net->
seen)/N, loss, avg_loss,
get_current_rate(net),
sec(clock()-time), *net->
seen);
94 if(*net->
seen/N > epoch){
97 sprintf(buff,
"%s/%s_%d.weights",backup_directory,base, epoch);
102 sprintf(buff,
"%s/%s.backup",backup_directory,base);
107 sprintf(buff,
"%s/%s.weights", backup_directory, base);
127 strncpy(input, filename, 256);
129 printf(
"Enter Image Path: ");
131 input = fgets(input, 256, stdin);
138 float *X = sized.
data;
141 printf(
"Predicted: %f\n", predictions[0]);
142 printf(
"%s: Predicted in %f seconds.\n", input,
sec(clock()-time));
150 void demo_regressor(
char *datacfg,
char *cfgfile,
char *weightfile,
int cam_index,
const char *filename)
153 printf(
"Regressor Demo\n");
161 cap = cvCaptureFromFile(filename);
163 cap = cvCaptureFromCAM(cam_index);
170 if(!cap)
error(
"Couldn't connect to webcam.\n");
171 cvNamedWindow(
"Regressor", CV_WINDOW_NORMAL);
172 cvResizeWindow(
"Regressor", 512, 512);
176 struct timeval tval_before, tval_after, tval_result;
177 gettimeofday(&tval_before, NULL);
179 image in = get_image_from_stream(cap);
187 printf(
"\nFPS:%.0f\n",fps);
191 printf(
"%s: %f\n", names[i], predictions[i]);
198 gettimeofday(&tval_after, NULL);
199 timersub(&tval_after, &tval_before, &tval_result);
200 float curr = 1000000.f/((
long int)tval_result.tv_usec);
201 fps = .9*fps + .1*curr;
210 fprintf(stderr,
"usage: %s %s [train/test/valid] [cfg] [weights (optional)]\n", argv[0], argv[1]);
219 printf(
"%s\n", gpu_list);
220 int len = strlen(gpu_list);
223 for(i = 0; i < len; ++i){
224 if (gpu_list[i] ==
',') ++ngpus;
226 gpus = calloc(ngpus,
sizeof(
int));
227 for(i = 0; i < ngpus; ++i){
228 gpus[i] = atoi(gpu_list);
229 gpu_list = strchr(gpu_list,
',')+1;
238 int clear =
find_arg(argc, argv,
"-clear");
239 char *
data = argv[3];
241 char *weights = (argc > 5) ? argv[5] : 0;
242 char *filename = (argc > 6) ? argv[6]: 0;
244 else if(0==strcmp(argv[2],
"train"))
train_regressor(data, cfg, weights, gpus, ngpus, clear);
245 else if(0==strcmp(argv[2],
"demo"))
demo_regressor(data, cfg, weights, cam_index, filename);
void train_regressor(char *datacfg, char *cfgfile, char *weightfile, int *gpus, int ngpus, int clear)
void run_regressor(int argc, char **argv)
int find_arg(int argc, char *argv[], char *arg)
void set_batch_network(network *net, int b)
int show_image(image p, const char *name, int ms)
char * find_char_arg(int argc, char **argv, char *arg, char *def)
char * basecfg(char *cfgfile)
void ** list_to_array(list *l)
char * option_find_str(list *l, char *key, char *def)
float train_network(network *net, data d)
void predict_regressor(char *cfgfile, char *weightfile, char *filename)
void free_network(network *net)
void save_weights(network *net, char *filename)
void grayscale_image_3c(image im)
image center_crop_image(image im, int w, int h)
image load_image_color(char *filename, int w, int h)
float get_current_rate(network *net)
float sec(clock_t clocks)
int find_int_arg(int argc, char **argv, char *arg, int def)
network * load_network(char *cfg, char *weights, int clear)
char ** get_labels(char *filename)
void * load_thread(void *ptr)
void cuda_set_device(int n)
list * read_data_cfg(char *filename)
size_t get_current_batch(network *net)
list * get_paths(char *filename)
pthread_t load_data(load_args args)
void error(const char *s)
int option_find_int(list *l, char *key, int def)
void demo_regressor(char *datacfg, char *cfgfile, char *weightfile, int cam_index, const char *filename)