From 2ea63c0e99a5358eaf38785ea83b9c5923fcc9cd Mon Sep 17 00:00:00 2001
From: Joseph Redmon <pjreddie@gmail.com>
Date: Thu, 13 Mar 2014 04:57:34 +0000
Subject: [PATCH] Better VOC handling and resizing

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

diff --git a/src/maxpool_layer.c b/src/maxpool_layer.c
index 8c409b9..413816a 100644
--- a/src/maxpool_layer.c
+++ b/src/maxpool_layer.c
@@ -17,10 +17,12 @@
     return float_to_image(h,w,c,layer.delta);
 }
 
-maxpool_layer *make_maxpool_layer(int h, int w, int c, int stride)
+maxpool_layer *make_maxpool_layer(int batch, int h, int w, int c, int stride)
 {
+    c = c*batch;
     fprintf(stderr, "Maxpool Layer: %d x %d x %d image, %d stride\n", h,w,c,stride);
     maxpool_layer *layer = calloc(1, sizeof(maxpool_layer));
+    layer->batch = batch;
     layer->h = h;
     layer->w = w;
     layer->c = c;
@@ -30,6 +32,15 @@
     return layer;
 }
 
+void resize_maxpool_layer(maxpool_layer *layer, int h, int w, int c)
+{
+    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 * sizeof(float));
+    layer->delta = realloc(layer->delta, ((h-1)/layer->stride+1) * ((w-1)/layer->stride+1) * c * sizeof(float));
+}
+
 void forward_maxpool_layer(const maxpool_layer layer, float *in)
 {
     image input = float_to_image(layer.h, layer.w, layer.c, in);

--
Gitblit v1.10.0