From 9361292c429c0ba3400c31c7fa5d5e3d3cb6ab47 Mon Sep 17 00:00:00 2001
From: Joseph Redmon <pjreddie@gmail.com>
Date: Tue, 19 Jul 2016 21:50:01 +0000
Subject: [PATCH] updates

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

diff --git a/src/convolutional_layer.c b/src/convolutional_layer.c
index c88cb0a..e8ae49c 100644
--- a/src/convolutional_layer.c
+++ b/src/convolutional_layer.c
@@ -45,6 +45,14 @@
     }
 }
 
+void binarize_cpu(float *input, int n, float *binary)
+{
+    int i;
+    for(i = 0; i < n; ++i){
+        binary[i] = (input[i] > 0) ? 1 : -1;
+    }
+}
+
 void binarize_input(float *input, int n, int size, float *binary)
 {
     int i, s;
@@ -293,6 +301,9 @@
             l.filters[i*l.c*l.size*l.size + j] *= scale;
         }
         l.biases[i] -= l.rolling_mean[i] * scale;
+        l.scales[i] = 1;
+        l.rolling_mean[i] = 0;
+        l.rolling_variance[i] = 1;
     }
 }
 
@@ -426,12 +437,10 @@
        }
      */
 
-    if(l.xnor && (l.c%32 != 0 || !AI2)){
+    if(l.xnor){
         binarize_filters(l.filters, l.n, l.c*l.size*l.size, l.binary_filters);
         swap_binary(&l);
-        for(i = 0; i < l.batch; ++i){
-            binarize_input(state.input + i*l.inputs, l.c, l.h*l.w, l.binary_input + i*l.inputs);
-        }
+        binarize_cpu(state.input, l.c*l.h*l.w*l.batch, l.binary_input);
         state.input = l.binary_input;
     }
 

--
Gitblit v1.10.0