From 043289426b2d08d925fc1c980b0d2a01e2360e93 Mon Sep 17 00:00:00 2001
From: AlexeyAB <alexeyab84@gmail.com>
Date: Sat, 04 Aug 2018 00:11:10 +0000
Subject: [PATCH] max pool layer is fixed

---
 src/maxpool_layer_kernels.cu |   16 ++++++++--------
 1 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/src/maxpool_layer_kernels.cu b/src/maxpool_layer_kernels.cu
index 05b1f9a..78b7f39 100644
--- a/src/maxpool_layer_kernels.cu
+++ b/src/maxpool_layer_kernels.cu
@@ -9,8 +9,8 @@
 
 __global__ void forward_maxpool_layer_kernel(int n, int in_h, int in_w, int in_c, int stride, int size, int pad, float *input, float *output, int *indexes)
 {
-    int h = (in_h + 2 * pad - size) / stride + 1;
-    int w = (in_w + 2 * pad - size) / stride + 1;
+    int h = (in_h + pad - size) / stride + 1;
+    int w = (in_w + pad - size) / stride + 1;
     int c = in_c;
 
     int id = (blockIdx.x + blockIdx.y*gridDim.x) * blockDim.x + threadIdx.x;
@@ -24,8 +24,8 @@
     id /= c;
     int b = id;
 
-    int w_offset = -pad;
-    int h_offset = -pad;
+    int w_offset = -pad / 2;
+    int h_offset = -pad / 2;
 
     int out_index = j + w*(i + h*(k + c*b));
     float max = -INFINITY;
@@ -49,8 +49,8 @@
 
 __global__ void backward_maxpool_layer_kernel(int n, int in_h, int in_w, int in_c, int stride, int size, int pad, float *delta, float *prev_delta, int *indexes)
 {
-    int h = (in_h + 2 * pad - size) / stride + 1;
-    int w = (in_w + 2 * pad - size) / stride + 1;
+    int h = (in_h + pad - size) / stride + 1;
+    int w = (in_w + pad - size) / stride + 1;
     int c = in_c;
     int area = (size-1)/stride;
 
@@ -66,8 +66,8 @@
     id /= in_c;
     int b = id;
 
-    int w_offset = -pad;
-    int h_offset = -pad;
+    int w_offset = -pad / 2;
+    int h_offset = -pad / 2;
 
     float d = 0;
     int l, m;

--
Gitblit v1.10.0