|
|
@ -136,15 +136,19 @@ void train_detector(char *datacfg, char *cfgfile, char *weightfile, int *gpus, i |
|
|
|
|
|
|
|
|
|
|
|
i = get_current_batch(net); |
|
|
|
i = get_current_batch(net); |
|
|
|
printf("%d: %f, %f avg, %f rate, %lf seconds, %d images\n", get_current_batch(net), loss, avg_loss, get_current_rate(net), sec(clock()-time), i*imgs); |
|
|
|
printf("%d: %f, %f avg, %f rate, %lf seconds, %d images\n", get_current_batch(net), loss, avg_loss, get_current_rate(net), sec(clock()-time), i*imgs); |
|
|
|
if(i%100==0 || (i < 1000 && i%100 == 0)){ |
|
|
|
if(i%1000==0 || (i < 1000 && i%100 == 0)){ |
|
|
|
|
|
|
|
#ifdef GPU |
|
|
|
if(ngpus != 1) sync_nets(nets, ngpus, 0); |
|
|
|
if(ngpus != 1) sync_nets(nets, ngpus, 0); |
|
|
|
|
|
|
|
#endif |
|
|
|
char buff[256]; |
|
|
|
char buff[256]; |
|
|
|
sprintf(buff, "%s/%s_%d.weights", backup_directory, base, i); |
|
|
|
sprintf(buff, "%s/%s_%d.weights", backup_directory, base, i); |
|
|
|
save_weights(net, buff); |
|
|
|
save_weights(net, buff); |
|
|
|
} |
|
|
|
} |
|
|
|
free_data(train); |
|
|
|
free_data(train); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
#ifdef GPU |
|
|
|
if(ngpus != 1) sync_nets(nets, ngpus, 0); |
|
|
|
if(ngpus != 1) sync_nets(nets, ngpus, 0); |
|
|
|
|
|
|
|
#endif |
|
|
|
char buff[256]; |
|
|
|
char buff[256]; |
|
|
|
sprintf(buff, "%s/%s_final.weights", backup_directory, base); |
|
|
|
sprintf(buff, "%s/%s_final.weights", backup_directory, base); |
|
|
|
save_weights(net, buff); |
|
|
|
save_weights(net, buff); |
|
|
|