From 5ef74c2031a040f30a670dc7d60790fc6a9ec720 Mon Sep 17 00:00:00 2001
From: Joseph Redmon <pjreddie@gmail.com>
Date: Fri, 02 May 2014 22:20:34 +0000
Subject: [PATCH] Slowly refactoring and pushing to GPU
---
src/convolutional_layer.c | 17 +++++++----------
1 files changed, 7 insertions(+), 10 deletions(-)
diff --git a/src/convolutional_layer.c b/src/convolutional_layer.c
index 45bb54a..31a4af6 100644
--- a/src/convolutional_layer.c
+++ b/src/convolutional_layer.c
@@ -100,7 +100,7 @@
float *b = layer.col_image;
float *c = layer.output;
for(i = 0; i < layer.batch; ++i){
- im2col_cpu(in+i*(n/layer.batch), layer.c, layer.h, layer.w, layer.size, layer.stride, b+i*(n/layer.batch));
+ im2col_gpu(in+i*(n/layer.batch), layer.c, layer.h, layer.w, layer.size, layer.stride, b+i*(n/layer.batch));
}
gemm(0,0,m,n,k,1,a,k,b,n,0,c,n);
activate_array(layer.output, m*n, layer.activation);
@@ -162,16 +162,13 @@
void update_convolutional_layer(convolutional_layer layer, float step, float momentum, float decay)
{
- int i;
int size = layer.size*layer.size*layer.c*layer.n;
- for(i = 0; i < layer.n; ++i){
- layer.biases[i] += step*layer.bias_updates[i];
- layer.bias_updates[i] *= momentum;
- }
- for(i = 0; i < size; ++i){
- layer.filters[i] += step*(layer.filter_updates[i] - decay*layer.filters[i]);
- layer.filter_updates[i] *= momentum;
- }
+ axpy_cpu(layer.n, step, layer.bias_updates, 1, layer.biases, 1);
+ scal_cpu(layer.n, momentum, layer.bias_updates, 1);
+
+ scal_cpu(size, 1.-step*decay, layer.filters, 1);
+ axpy_cpu(size, step, layer.filter_updates, 1, layer.filters, 1);
+ scal_cpu(size, momentum, layer.filter_updates, 1);
}
void test_convolutional_layer()
--
Gitblit v1.10.0