From 0f645836f193e75c4c3b718369e6fab15b5d19c5 Mon Sep 17 00:00:00 2001
From: Joseph Redmon <pjreddie@gmail.com>
Date: Wed, 11 Feb 2015 03:41:03 +0000
Subject: [PATCH] Detection is back, baby\!

---
 src/maxpool_layer.c |   17 +++++++++++++----
 1 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/src/maxpool_layer.c b/src/maxpool_layer.c
index 834ebdb..ef7176d 100644
--- a/src/maxpool_layer.c
+++ b/src/maxpool_layer.c
@@ -40,13 +40,22 @@
     return layer;
 }
 
-void resize_maxpool_layer(maxpool_layer *layer, int h, int w, int c)
+void resize_maxpool_layer(maxpool_layer *layer, int h, int w)
 {
     layer->h = h;
     layer->w = w;
-    layer->c = c;
-    layer->output = realloc(layer->output, ((h-1)/layer->stride+1) * ((w-1)/layer->stride+1) * c * layer->batch* sizeof(float));
-    layer->delta = realloc(layer->delta, ((h-1)/layer->stride+1) * ((w-1)/layer->stride+1) * c * layer->batch*sizeof(float));
+    int output_size = ((h-1)/layer->stride+1) * ((w-1)/layer->stride+1) * layer->c * layer->batch;
+    layer->output = realloc(layer->output, output_size * sizeof(float));
+    layer->delta = realloc(layer->delta, output_size * sizeof(float));
+
+    #ifdef GPU
+    cuda_free((float *)layer->indexes_gpu);
+    cuda_free(layer->output_gpu);
+    cuda_free(layer->delta_gpu);
+    layer->indexes_gpu = cuda_make_int_array(output_size);
+    layer->output_gpu  = cuda_make_array(layer->output, output_size);
+    layer->delta_gpu   = cuda_make_array(layer->delta, output_size);
+    #endif
 }
 
 void forward_maxpool_layer(const maxpool_layer layer, float *input)

--
Gitblit v1.10.0