From 89354d0a0ce6fbb22ff262658045cdb8796ff6fd Mon Sep 17 00:00:00 2001
From: AlexeyAB <alexeyab84@gmail.com>
Date: Fri, 04 May 2018 20:52:05 +0000
Subject: [PATCH] Fixed memory leaks. And fixes for Web-camera and IP-camera.
---
src/parser.c | 17 ++++++++++++-----
1 files changed, 12 insertions(+), 5 deletions(-)
diff --git a/src/parser.c b/src/parser.c
index a37ef1c..7441ae2 100644
--- a/src/parser.c
+++ b/src/parser.c
@@ -268,11 +268,13 @@
char *a = option_find_str(options, "mask", 0);
int *mask = parse_yolo_mask(a, &num);
- layer l = make_yolo_layer(params.batch, params.w, params.h, num, total, mask, classes);
+ int max_boxes = option_find_int_quiet(options, "max", 30);
+ layer l = make_yolo_layer(params.batch, params.w, params.h, num, total, mask, classes, max_boxes);
assert(l.outputs == params.inputs);
- l.max_boxes = option_find_int_quiet(options, "max", 90);
+ //l.max_boxes = option_find_int_quiet(options, "max", 90);
l.jitter = option_find_float(options, "jitter", .2);
+ l.focal_loss = option_find_int_quiet(options, "focal_loss", 0);
l.ignore_thresh = option_find_float(options, "ignore_thresh", .5);
l.truth_thresh = option_find_float(options, "truth_thresh", 1);
@@ -289,7 +291,7 @@
for (i = 0; i < len; ++i) {
if (a[i] == ',') ++n;
}
- for (i = 0; i < n; ++i) {
+ for (i = 0; i < n && i < total*2; ++i) {
float bias = atof(a);
l.biases[i] = bias;
a = strchr(a, ',') + 1;
@@ -311,7 +313,6 @@
l.log = option_find_int_quiet(options, "log", 0);
l.sqrt = option_find_int_quiet(options, "sqrt", 0);
- l.small_object = option_find_int_quiet(options, "small_object", 0);
l.softmax = option_find_int(options, "softmax", 0);
l.focal_loss = option_find_int_quiet(options, "focal_loss", 0);
//l.max_boxes = option_find_int_quiet(options, "max",30);
@@ -326,6 +327,7 @@
l.coord_scale = option_find_float(options, "coord_scale", 1);
l.object_scale = option_find_float(options, "object_scale", 1);
l.noobject_scale = option_find_float(options, "noobject_scale", 1);
+ l.mask_scale = option_find_float(options, "mask_scale", 1);
l.class_scale = option_find_float(options, "class_scale", 1);
l.bias_match = option_find_int_quiet(options, "bias_match",0);
@@ -342,7 +344,7 @@
for(i = 0; i < len; ++i){
if (a[i] == ',') ++n;
}
- for(i = 0; i < n; ++i){
+ for(i = 0; i < n && i < num*2; ++i){
float bias = atof(a);
l.biases[i] = bias;
a = strchr(a, ',')+1;
@@ -620,7 +622,9 @@
net->inputs = option_find_int_quiet(options, "inputs", net->h * net->w * net->c);
net->max_crop = option_find_int_quiet(options, "max_crop",net->w*2);
net->min_crop = option_find_int_quiet(options, "min_crop",net->w);
+ net->flip = option_find_int_quiet(options, "flip", 1);
+ net->small_object = option_find_int_quiet(options, "small_object", 0);
net->angle = option_find_float_quiet(options, "angle", 0);
net->aspect = option_find_float_quiet(options, "aspect", 1);
net->saturation = option_find_float_quiet(options, "saturation", 1);
@@ -633,6 +637,9 @@
char *policy_s = option_find_str(options, "policy", "constant");
net->policy = get_policy(policy_s);
net->burn_in = option_find_int_quiet(options, "burn_in", 0);
+#ifdef CUDNN_HALF
+ net->burn_in = 0;
+#endif
if(net->policy == STEP){
net->step = option_find_int(options, "step", 1);
net->scale = option_find_float(options, "scale", 1);
--
Gitblit v1.10.0