From fe44d3d0f29e96714de75234e1fd7e40b05b0296 Mon Sep 17 00:00:00 2001 From: AlexeyAB Date: Sat, 3 Mar 2018 18:09:46 +0300 Subject: [PATCH] Fixed reorg_layer. Old reorg can be used as [reorg_old] in the cfg-file. --- Makefile | 2 +- build/darknet/darknet.vcxproj | 2 + build/darknet/darknet_no_gpu.vcxproj | 2 + build/darknet/x64/darknet_voc.cmd | 4 +- build/darknet/x64/dogr.jpg | Bin 0 -> 86810 bytes build/darknet/yolo_cpp_dll.vcxproj | 2 + build/darknet/yolo_cpp_dll_no_gpu.vcxproj | 2 + src/blas.c | 23 +++-- src/layer.h | 1 + src/parser.c | 23 ++++- src/reorg_layer.c | 46 +++++---- src/reorg_old_layer.c | 118 ++++++++++++++++++++++ src/reorg_old_layer.h | 20 ++++ 13 files changed, 211 insertions(+), 34 deletions(-) create mode 100644 build/darknet/x64/dogr.jpg create mode 100644 src/reorg_old_layer.c create mode 100644 src/reorg_old_layer.h diff --git a/Makefile b/Makefile index 8898ba85..41f0e049 100644 --- a/Makefile +++ b/Makefile @@ -74,7 +74,7 @@ CFLAGS+= -DCUDNN -I/usr/local/cudnn/include LDFLAGS+= -L/usr/local/cudnn/lib64 -lcudnn endif -OBJ=http_stream.o gemm.o utils.o cuda.o convolutional_layer.o list.o image.o activations.o im2col.o col2im.o blas.o crop_layer.o dropout_layer.o maxpool_layer.o softmax_layer.o data.o matrix.o network.o connected_layer.o cost_layer.o parser.o option_list.o darknet.o detection_layer.o captcha.o route_layer.o writing.o box.o nightmare.o normalization_layer.o avgpool_layer.o coco.o dice.o yolo.o detector.o layer.o compare.o classifier.o local_layer.o swag.o shortcut_layer.o activation_layer.o rnn_layer.o gru_layer.o rnn.o rnn_vid.o crnn_layer.o demo.o tag.o cifar.o go.o batchnorm_layer.o art.o region_layer.o reorg_layer.o super.o voxel.o tree.o +OBJ=http_stream.o gemm.o utils.o cuda.o convolutional_layer.o list.o image.o activations.o im2col.o col2im.o blas.o crop_layer.o dropout_layer.o maxpool_layer.o softmax_layer.o data.o matrix.o network.o connected_layer.o cost_layer.o parser.o option_list.o darknet.o detection_layer.o captcha.o route_layer.o writing.o box.o nightmare.o normalization_layer.o avgpool_layer.o coco.o dice.o yolo.o detector.o layer.o compare.o classifier.o local_layer.o swag.o shortcut_layer.o activation_layer.o rnn_layer.o gru_layer.o rnn.o rnn_vid.o crnn_layer.o demo.o tag.o cifar.o go.o batchnorm_layer.o art.o region_layer.o reorg_layer.o reorg_old_layer.o super.o voxel.o tree.o ifeq ($(GPU), 1) LDFLAGS+= -lstdc++ OBJ+=convolutional_kernels.o activation_kernels.o im2col_kernels.o col2im_kernels.o blas_kernels.o crop_layer_kernels.o dropout_layer_kernels.o maxpool_layer_kernels.o network_kernels.o avgpool_layer_kernels.o diff --git a/build/darknet/darknet.vcxproj b/build/darknet/darknet.vcxproj index a6c2b518..300dd453 100644 --- a/build/darknet/darknet.vcxproj +++ b/build/darknet/darknet.vcxproj @@ -216,6 +216,7 @@ + @@ -269,6 +270,7 @@ + diff --git a/build/darknet/darknet_no_gpu.vcxproj b/build/darknet/darknet_no_gpu.vcxproj index 578a5af3..e1c4c37f 100644 --- a/build/darknet/darknet_no_gpu.vcxproj +++ b/build/darknet/darknet_no_gpu.vcxproj @@ -213,6 +213,7 @@ + @@ -266,6 +267,7 @@ + diff --git a/build/darknet/x64/darknet_voc.cmd b/build/darknet/x64/darknet_voc.cmd index 864bb641..1ee177a6 100644 --- a/build/darknet/x64/darknet_voc.cmd +++ b/build/darknet/x64/darknet_voc.cmd @@ -1,8 +1,8 @@ -darknet.exe detector test data/voc.data yolo-voc.cfg yolo-voc.weights 009460.jpg +rem darknet.exe detector test data/voc.data yolo-voc.cfg yolo-voc.weights 009460.jpg -darknet.exe detector test data/voc.data yolo-voc.cfg yolo-voc.weights -i 0 -thresh 0.1 dogr.jpg +darknet.exe detector test data/voc.data yolo-voc.cfg yolo-voc.weights -i 0 -thresh 0.2 dogr.jpg pause \ No newline at end of file diff --git a/build/darknet/x64/dogr.jpg b/build/darknet/x64/dogr.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e9201231bdb19ecc03854facbdbe2430f97b5817 GIT binary patch literal 86810 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

Gqe}9-pXPPacfkTp_l*LmN)9Hu%&i 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

KL$NH` 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 + @@ -273,6 +274,7 @@ + diff --git a/build/darknet/yolo_cpp_dll_no_gpu.vcxproj b/build/darknet/yolo_cpp_dll_no_gpu.vcxproj index 03fbd3aa..c1d1d30e 100644 --- a/build/darknet/yolo_cpp_dll_no_gpu.vcxproj +++ b/build/darknet/yolo_cpp_dll_no_gpu.vcxproj @@ -202,6 +202,7 @@ + @@ -256,6 +257,7 @@ + diff --git a/src/blas.c b/src/blas.c index cb6501fd..6d565e96 100644 --- a/src/blas.c +++ b/src/blas.c @@ -6,22 +6,25 @@ #include #include #include -void reorg_cpu(float *x, int w, int h, int c, int batch, int stride, int forward, float *out) +void reorg_cpu(float *x, int out_w, int out_h, int out_c, int batch, int stride, int forward, float *out) { int b,i,j,k; - int out_c = c/(stride*stride); + int in_c = out_c/(stride*stride); + + //printf("\n out_c = %d, out_w = %d, out_h = %d, stride = %d, forward = %d \n", out_c, out_w, out_h, stride, forward); + //printf(" in_c = %d, in_w = %d, in_h = %d \n", in_c, out_w*stride, out_h*stride); for(b = 0; b < batch; ++b){ - for(k = 0; k < c; ++k){ - for(j = 0; j < h; ++j){ - for(i = 0; i < w; ++i){ - int in_index = i + w*(j + h*(k + c*b)); - int c2 = k % out_c; - int offset = k / out_c; + for(k = 0; k < out_c; ++k){ + for(j = 0; j < out_h; ++j){ + for(i = 0; i < out_w; ++i){ + int in_index = i + out_w*(j + out_h*(k + out_c*b)); + int c2 = k % in_c; + int offset = k / in_c; int w2 = i*stride + offset % stride; int h2 = j*stride + offset / stride; - int out_index = w2 + w*stride*(h2 + h*stride*(c2 + out_c*b)); - if(forward) out[out_index] = x[in_index]; + int out_index = w2 + out_w*stride*(h2 + out_h*stride*(c2 + in_c*b)); + if(forward) out[out_index] = x[in_index]; // used by default for forward (i.e. forward = 0) else out[in_index] = x[out_index]; } } diff --git a/src/layer.h b/src/layer.h index 93aca6c7..9bf60570 100644 --- a/src/layer.h +++ b/src/layer.h @@ -34,6 +34,7 @@ typedef enum { XNOR, REGION, REORG, + REORG_OLD, BLANK } LAYER_TYPE; diff --git a/src/parser.c b/src/parser.c index 78036322..1adcd166 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 @@ LAYER_TYPE string_to_layer_type(char * type) 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; @@ -358,6 +360,23 @@ layer parse_reorg(list *options, size_params params) 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); @@ -657,7 +676,9 @@ network parse_network_cfg_custom(char *filename, int batch) }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){ diff --git a/src/reorg_layer.c b/src/reorg_layer.c index 2abca8fa..9c8ea829 100644 --- a/src/reorg_layer.c +++ b/src/reorg_layer.c @@ -77,38 +77,44 @@ void resize_reorg_layer(layer *l, int w, int h) void forward_reorg_layer(const layer l, network_state state) { - if(l.reverse){ - reorg_cpu(state.input, l.w, l.h, l.c, l.batch, l.stride, 1, l.output); - }else { - reorg_cpu(state.input, l.w, l.h, l.c, l.batch, l.stride, 0, l.output); - } + if (l.reverse) { + reorg_cpu(state.input, l.out_w, l.out_h, l.out_c, l.batch, l.stride, 1, l.output); + } + else { + reorg_cpu(state.input, l.out_w, l.out_h, l.out_c, l.batch, l.stride, 0, l.output); + } } void backward_reorg_layer(const layer l, network_state state) { - if(l.reverse){ - reorg_cpu(l.delta, l.w, l.h, l.c, l.batch, l.stride, 0, state.delta); - }else{ - reorg_cpu(l.delta, l.w, l.h, l.c, l.batch, l.stride, 1, state.delta); - } + if (l.reverse) { + reorg_cpu(l.delta, l.out_w, l.out_h, l.out_c, l.batch, l.stride, 0, state.delta); + } + else { + reorg_cpu(l.delta, l.out_w, l.out_h, l.out_c, l.batch, l.stride, 1, state.delta); + } } #ifdef GPU void forward_reorg_layer_gpu(layer l, network_state state) { - if(l.reverse){ - reorg_ongpu(state.input, l.w, l.h, l.c, l.batch, l.stride, 1, l.output_gpu); - }else { - reorg_ongpu(state.input, l.w, l.h, l.c, l.batch, l.stride, 0, l.output_gpu); - } + if (l.reverse) { + reorg_ongpu(state.input, l.out_w, l.out_h, l.out_c, l.batch, l.stride, 1, l.output_gpu); + } + else { + reorg_ongpu(state.input, l.out_w, l.out_h, l.out_c, l.batch, l.stride, 0, l.output_gpu); + } } void backward_reorg_layer_gpu(layer l, network_state state) { - if(l.reverse){ - reorg_ongpu(l.delta_gpu, l.w, l.h, l.c, l.batch, l.stride, 0, state.delta); - }else{ - reorg_ongpu(l.delta_gpu, l.w, l.h, l.c, l.batch, l.stride, 1, state.delta); - } + if (l.reverse) { + reorg_ongpu(l.delta_gpu, l.out_w, l.out_h, l.out_c, l.batch, l.stride, 0, state.delta); + //reorg_ongpu(l.delta_gpu, l.w, l.h, l.c, l.batch, l.stride, 0, state.delta); + } + else { + reorg_ongpu(l.delta_gpu, l.out_w, l.out_h, l.out_c, l.batch, l.stride, 1, state.delta); + //reorg_ongpu(l.delta_gpu, l.w, l.h, l.c, l.batch, l.stride, 1, state.delta); + } } #endif diff --git a/src/reorg_old_layer.c b/src/reorg_old_layer.c new file mode 100644 index 00000000..c55cf7c2 --- /dev/null +++ b/src/reorg_old_layer.c @@ -0,0 +1,118 @@ +#include "reorg_old_layer.h" +#include "cuda.h" +#include "blas.h" +#include + + +layer make_reorg_old_layer(int batch, int w, int h, int c, int stride, int reverse) +{ + layer l = {0}; + l.type = REORG_OLD; + l.batch = batch; + l.stride = stride; + l.h = h; + l.w = w; + l.c = c; + if(reverse){ + l.out_w = w*stride; + l.out_h = h*stride; + l.out_c = c/(stride*stride); + }else{ + l.out_w = w/stride; + l.out_h = h/stride; + l.out_c = c*(stride*stride); + } + l.reverse = reverse; + fprintf(stderr, "reorg_old /%2d %4d x%4d x%4d -> %4d x%4d x%4d\n", stride, w, h, c, l.out_w, l.out_h, l.out_c); + l.outputs = l.out_h * l.out_w * l.out_c; + l.inputs = h*w*c; + int output_size = l.out_h * l.out_w * l.out_c * batch; + l.output = calloc(output_size, sizeof(float)); + l.delta = calloc(output_size, sizeof(float)); + + l.forward = forward_reorg_old_layer; + l.backward = backward_reorg_old_layer; +#ifdef GPU + l.forward_gpu = forward_reorg_old_layer_gpu; + l.backward_gpu = backward_reorg_old_layer_gpu; + + l.output_gpu = cuda_make_array(l.output, output_size); + l.delta_gpu = cuda_make_array(l.delta, output_size); +#endif + return l; +} + +void resize_reorg_old_layer(layer *l, int w, int h) +{ + int stride = l->stride; + int c = l->c; + + l->h = h; + l->w = w; + + if(l->reverse){ + l->out_w = w*stride; + l->out_h = h*stride; + l->out_c = c/(stride*stride); + }else{ + l->out_w = w/stride; + l->out_h = h/stride; + l->out_c = c*(stride*stride); + } + + l->outputs = l->out_h * l->out_w * l->out_c; + l->inputs = l->outputs; + int output_size = l->outputs * l->batch; + + l->output = realloc(l->output, output_size * sizeof(float)); + l->delta = realloc(l->delta, output_size * sizeof(float)); + +#ifdef GPU + cuda_free(l->output_gpu); + cuda_free(l->delta_gpu); + l->output_gpu = cuda_make_array(l->output, output_size); + l->delta_gpu = cuda_make_array(l->delta, output_size); +#endif +} + +void forward_reorg_old_layer(const layer l, network_state state) +{ + if (l.reverse) { + reorg_cpu(state.input, l.w, l.h, l.c, l.batch, l.stride, 1, l.output); + } + else { + reorg_cpu(state.input, l.w, l.h, l.c, l.batch, l.stride, 0, l.output); + } +} + +void backward_reorg_old_layer(const layer l, network_state state) +{ + if (l.reverse) { + reorg_cpu(l.delta, l.w, l.h, l.c, l.batch, l.stride, 0, state.delta); + } + else { + reorg_cpu(l.delta, l.w, l.h, l.c, l.batch, l.stride, 1, state.delta); + } +} + +#ifdef GPU +void forward_reorg_old_layer_gpu(layer l, network_state state) +{ + if (l.reverse) { + reorg_ongpu(state.input, l.w, l.h, l.c, l.batch, l.stride, 1, l.output_gpu); + } + else { + reorg_ongpu(state.input, l.w, l.h, l.c, l.batch, l.stride, 0, l.output_gpu); + } +} + +void backward_reorg_old_layer_gpu(layer l, network_state state) +{ + if (l.reverse) { + reorg_ongpu(l.delta_gpu, l.w, l.h, l.c, l.batch, l.stride, 0, state.delta); + } + else { + reorg_ongpu(l.delta_gpu, l.w, l.h, l.c, l.batch, l.stride, 1, state.delta); + } +} +#endif diff --git a/src/reorg_old_layer.h b/src/reorg_old_layer.h new file mode 100644 index 00000000..e1838202 --- /dev/null +++ b/src/reorg_old_layer.h @@ -0,0 +1,20 @@ +#ifndef REORG_OLD_LAYER_H +#define REORG_OLD_LAYER_H + +#include "image.h" +#include "cuda.h" +#include "layer.h" +#include "network.h" + +layer make_reorg_old_layer(int batch, int h, int w, int c, int stride, int reverse); +void resize_reorg_old_layer(layer *l, int w, int h); +void forward_reorg_old_layer(const layer l, network_state state); +void backward_reorg_old_layer(const layer l, network_state state); + +#ifdef GPU +void forward_reorg_old_layer_gpu(layer l, network_state state); +void backward_reorg_old_layer_gpu(layer l, network_state state); +#endif + +#endif +