From 729ce43e6ec45cfdb58e06e227428a0f81c5de0f Mon Sep 17 00:00:00 2001
From: Joseph Redmon <pjreddie@gmail.com>
Date: Fri, 10 Jun 2016 00:20:31 +0000
Subject: [PATCH] stuff

---
 src/convolutional_kernels.cu |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)

diff --git a/src/convolutional_kernels.cu b/src/convolutional_kernels.cu
index cb50561..1de9dc0 100644
--- a/src/convolutional_kernels.cu
+++ b/src/convolutional_kernels.cu
@@ -142,6 +142,7 @@
     if(l.batch_normalize){
         backward_batchnorm_layer_gpu(l, state);
     }
+    float *original_input = state.input;
 
     if(l.xnor) state.input = l.binary_input_gpu;
 #ifdef CUDNN
@@ -176,6 +177,7 @@
                 l.dsrcTensorDesc,
                 state.delta);
         if(l.binary || l.xnor) swap_binary(&l);
+        if(l.xnor) gradient_array_ongpu(original_input, l.batch*l.c*l.h*l.w, HARDTAN, state.delta);
     }
 
 #else
@@ -197,7 +199,10 @@
             gemm_ongpu(1,0,n,k,m,1,a,n,b + i*k*m,k,0,c,k);
 
             col2im_ongpu(state.workspace, l.c,  l.h,  l.w,  l.size,  l.stride, l.pad, state.delta + i*l.c*l.h*l.w);
-            if(l.binary || l.xnor) swap_binary(&l);
+            if(l.binary || l.xnor) {
+                swap_binary(&l);
+            }
+            if(l.xnor) gradient_array_ongpu(original_input + i*l.c*l.h*l.w, l.c*l.h*l.w, HARDTAN, state.delta + i*l.c*l.h*l.w);
         }
     }
 #endif

--
Gitblit v1.10.0