mirror of
https://github.com/pjreddie/darknet.git
synced 2023-08-10 21:13:14 +03:00
Some fixes
This commit is contained in:
@ -70,6 +70,9 @@ void train_detector(char *datacfg, char *cfgfile, char *weightfile, int *gpus, i
|
|||||||
//int N = plist->size;
|
//int N = plist->size;
|
||||||
char **paths = (char **)list_to_array(plist);
|
char **paths = (char **)list_to_array(plist);
|
||||||
|
|
||||||
|
int init_w = net.w;
|
||||||
|
int init_h = net.h;
|
||||||
|
|
||||||
load_args args = {0};
|
load_args args = {0};
|
||||||
args.w = net.w;
|
args.w = net.w;
|
||||||
args.h = net.h;
|
args.h = net.h;
|
||||||
@ -95,8 +98,9 @@ void train_detector(char *datacfg, char *cfgfile, char *weightfile, int *gpus, i
|
|||||||
while(get_current_batch(net) < net.max_batches){
|
while(get_current_batch(net) < net.max_batches){
|
||||||
if(l.random && count++%10 == 0){
|
if(l.random && count++%10 == 0){
|
||||||
printf("Resizing\n");
|
printf("Resizing\n");
|
||||||
int dim = (rand() % 10 + 10) * 32;
|
int dim = (rand() % 12 + (init_w/32 - 5)) * 32; // +-160
|
||||||
if (get_current_batch(net)+100 > net.max_batches) dim = 544;
|
//int dim = (rand() % 10 + 10) * 32;
|
||||||
|
//if (get_current_batch(net)+100 > net.max_batches) dim = 544;
|
||||||
//int dim = (rand() % 4 + 16) * 32;
|
//int dim = (rand() % 4 + 16) * 32;
|
||||||
printf("%d\n", dim);
|
printf("%d\n", dim);
|
||||||
args.w = dim;
|
args.w = dim;
|
||||||
@ -152,7 +156,8 @@ 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 % 1000 == 0 || (i < 1000 && i % 100 == 0)) {
|
//if (i % 1000 == 0 || (i < 1000 && i % 100 == 0)) {
|
||||||
|
if (i % 100 == 0) {
|
||||||
#ifdef GPU
|
#ifdef GPU
|
||||||
if (ngpus != 1) sync_nets(nets, ngpus, 0);
|
if (ngpus != 1) sync_nets(nets, ngpus, 0);
|
||||||
#endif
|
#endif
|
||||||
|
@ -114,6 +114,7 @@ void forward_backward_network_gpu(network net, float *x, float *y)
|
|||||||
state.truth = *net.truth_gpu;
|
state.truth = *net.truth_gpu;
|
||||||
state.train = 1;
|
state.train = 1;
|
||||||
forward_network_gpu(net, state);
|
forward_network_gpu(net, state);
|
||||||
|
cudaStreamSynchronize(get_cuda_stream());
|
||||||
backward_network_gpu(net, state);
|
backward_network_gpu(net, state);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -419,6 +419,7 @@ void forward_region_layer_gpu(const region_layer l, network_state state)
|
|||||||
free(cpu_state.input);
|
free(cpu_state.input);
|
||||||
if(!state.train) return;
|
if(!state.train) return;
|
||||||
cuda_push_array(l.delta_gpu, l.delta, l.batch*l.outputs);
|
cuda_push_array(l.delta_gpu, l.delta, l.batch*l.outputs);
|
||||||
|
cudaStreamSynchronize(get_cuda_stream());
|
||||||
if(cpu_state.truth) free(cpu_state.truth);
|
if(cpu_state.truth) free(cpu_state.truth);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -194,7 +194,7 @@ int main(int argc, char *argv[])
|
|||||||
auto current_image = det_image;
|
auto current_image = det_image;
|
||||||
consumed = true;
|
consumed = true;
|
||||||
while (current_image.use_count() > 0) {
|
while (current_image.use_count() > 0) {
|
||||||
auto result = detector.detect_resized(*current_image, frame_size, 0.24, false); // true
|
auto result = detector.detect_resized(*current_image, frame_size, 0.20, false); // true
|
||||||
++fps_det_counter;
|
++fps_det_counter;
|
||||||
std::unique_lock<std::mutex> lock(mtx);
|
std::unique_lock<std::mutex> lock(mtx);
|
||||||
thread_result_vec = result;
|
thread_result_vec = result;
|
||||||
@ -236,11 +236,13 @@ int main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef TRACK_OPTFLOW
|
||||||
// wait detection result for video-file only (not for net-cam)
|
// wait detection result for video-file only (not for net-cam)
|
||||||
//if (protocol != "rtsp://" && protocol != "http://" && protocol != "https:/") {
|
if (protocol != "rtsp://" && protocol != "http://" && protocol != "https:/") {
|
||||||
// std::unique_lock<std::mutex> lock(mtx);
|
std::unique_lock<std::mutex> lock(mtx);
|
||||||
// while (!consumed) cv_detected.wait(lock);
|
while (!consumed) cv_detected.wait(lock);
|
||||||
//}
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
if (t_cap.joinable()) t_cap.join();
|
if (t_cap.joinable()) t_cap.join();
|
||||||
if (t_detect.joinable()) t_detect.join();
|
if (t_detect.joinable()) t_detect.join();
|
||||||
|
Reference in New Issue
Block a user