From fe44d3d0f29e96714de75234e1fd7e40b05b0296 Mon Sep 17 00:00:00 2001
From: AlexeyAB <alexeyab84@gmail.com>
Date: Sat, 03 Mar 2018 15:09:46 +0000
Subject: [PATCH] Fixed reorg_layer. Old reorg can be used as [reorg_old] in the cfg-file.
---
src/parser.c | 34 ++++++++++++++++++++++++++++++----
1 files changed, 30 insertions(+), 4 deletions(-)
diff --git a/src/parser.c b/src/parser.c
index e0fe8f2..1adcd16 100644
--- a/src/parser.c
+++ b/src/parser.c
@@ -24,6 +24,7 @@
#include "parser.h"
#include "region_layer.h"
#include "reorg_layer.h"
+#include "reorg_old_layer.h"
#include "rnn_layer.h"
#include "route_layer.h"
#include "shortcut_layer.h"
@@ -60,6 +61,7 @@
if (strcmp(type, "[max]")==0
|| strcmp(type, "[maxpool]")==0) return MAXPOOL;
if (strcmp(type, "[reorg]")==0) return REORG;
+ if (strcmp(type, "[reorg_old]") == 0) return REORG_OLD;
if (strcmp(type, "[avg]")==0
|| strcmp(type, "[avgpool]")==0) return AVGPOOL;
if (strcmp(type, "[dropout]")==0) return DROPOUT;
@@ -238,15 +240,17 @@
int coords = option_find_int(options, "coords", 4);
int classes = option_find_int(options, "classes", 20);
int num = option_find_int(options, "num", 1);
+ int max_boxes = option_find_int_quiet(options, "max", 30);
- layer l = make_region_layer(params.batch, params.w, params.h, num, classes, coords);
+ layer l = make_region_layer(params.batch, params.w, params.h, num, classes, coords, max_boxes);
assert(l.outputs == params.inputs);
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.max_boxes = option_find_int_quiet(options, "max",30);
+ //l.max_boxes = option_find_int_quiet(options, "max",30);
l.jitter = option_find_float(options, "jitter", .2);
l.rescore = option_find_int_quiet(options, "rescore",0);
@@ -356,6 +360,23 @@
return layer;
}
+layer parse_reorg_old(list *options, size_params params)
+{
+ printf("\n reorg_old \n");
+ int stride = option_find_int(options, "stride", 1);
+ int reverse = option_find_int_quiet(options, "reverse", 0);
+
+ int batch, h, w, c;
+ h = params.h;
+ w = params.w;
+ c = params.c;
+ batch = params.batch;
+ if (!(h && w && c)) error("Layer before reorg layer must output image.");
+
+ layer layer = make_reorg_old_layer(batch, w, h, c, stride, reverse);
+ return layer;
+}
+
maxpool_layer parse_maxpool(list *options, size_params params)
{
int stride = option_find_int(options, "stride",1);
@@ -532,6 +553,7 @@
net->saturation = option_find_float_quiet(options, "saturation", 1);
net->exposure = option_find_float_quiet(options, "exposure", 1);
net->hue = option_find_float_quiet(options, "hue", 0);
+ net->power = option_find_float_quiet(options, "power", 4);
if(!net->inputs && !(net->h && net->w && net->c)) error("No input parameters supplied");
@@ -571,7 +593,7 @@
net->gamma = option_find_float(options, "gamma", 1);
net->step = option_find_int(options, "step", 1);
} else if (net->policy == POLY || net->policy == RANDOM){
- net->power = option_find_float(options, "power", 1);
+ //net->power = option_find_float(options, "power", 1);
}
net->max_batches = option_find_int(options, "max_batches", 0);
}
@@ -654,7 +676,9 @@
}else if(lt == MAXPOOL){
l = parse_maxpool(options, params);
}else if(lt == REORG){
- l = parse_reorg(options, params);
+ l = parse_reorg(options, params); }
+ else if (lt == REORG_OLD) {
+ l = parse_reorg_old(options, params);
}else if(lt == AVGPOOL){
l = parse_avgpool(options, params);
}else if(lt == ROUTE){
@@ -672,6 +696,8 @@
}else{
fprintf(stderr, "Type not recognized: %s\n", s->type);
}
+ l.onlyforward = option_find_int_quiet(options, "onlyforward", 0);
+ l.stopbackward = option_find_int_quiet(options, "stopbackward", 0);
l.dontload = option_find_int_quiet(options, "dontload", 0);
l.dontloadscales = option_find_int_quiet(options, "dontloadscales", 0);
option_unused(options);
--
Gitblit v1.10.0