From f047cfff99e00e28c02eb59b6d32386c122f9af6 Mon Sep 17 00:00:00 2001
From: Joseph Redmon <pjreddie@gmail.com>
Date: Sun, 08 Mar 2015 18:31:12 +0000
Subject: [PATCH] renamed sigmoid to logistic
---
src/crop_layer.c | 50 +++++++++++++++++++++++++++-----------------------
1 files changed, 27 insertions(+), 23 deletions(-)
diff --git a/src/crop_layer.c b/src/crop_layer.c
index 58e1b55..3f0011d 100644
--- a/src/crop_layer.c
+++ b/src/crop_layer.c
@@ -1,4 +1,5 @@
#include "crop_layer.h"
+#include "cuda.h"
#include <stdio.h>
image get_crop_image(crop_layer layer)
@@ -21,34 +22,37 @@
layer->crop_width = crop_width;
layer->crop_height = crop_height;
layer->output = calloc(crop_width*crop_height * c*batch, sizeof(float));
- layer->delta = calloc(crop_width*crop_height * c*batch, sizeof(float));
+ #ifdef GPU
+ layer->output_gpu = cuda_make_array(layer->output, crop_width*crop_height*c*batch);
+ #endif
return layer;
}
-void forward_crop_layer(const crop_layer layer, float *input)
+
+void forward_crop_layer(const crop_layer layer, int train, float *input)
{
- int i,j,c,b;
- int dh = rand()%(layer.h - layer.crop_height);
- int dw = rand()%(layer.w - layer.crop_width);
+ int i,j,c,b,row,col;
+ int index;
int count = 0;
- if(layer.flip && rand()%2){
- for(b = 0; b < layer.batch; ++b){
- for(c = 0; c < layer.c; ++c){
- for(i = dh; i < dh+layer.crop_height; ++i){
- for(j = dw+layer.crop_width-1; j >= dw; --j){
- int index = j+layer.w*(i+layer.h*(c + layer.c*b));
- layer.output[count++] = input[index];
+ int flip = (layer.flip && rand()%2);
+ int dh = rand()%(layer.h - layer.crop_height + 1);
+ int dw = rand()%(layer.w - layer.crop_width + 1);
+ if(!train){
+ flip = 0;
+ dh = (layer.h - layer.crop_height)/2;
+ dw = (layer.w - layer.crop_width)/2;
+ }
+ for(b = 0; b < layer.batch; ++b){
+ for(c = 0; c < layer.c; ++c){
+ for(i = 0; i < layer.crop_height; ++i){
+ for(j = 0; j < layer.crop_width; ++j){
+ if(flip){
+ col = layer.w - dw - j - 1;
+ }else{
+ col = j + dw;
}
- }
- }
- }
- }else{
- for(b = 0; b < layer.batch; ++b){
- for(c = 0; c < layer.c; ++c){
- for(i = dh; i < dh+layer.crop_height; ++i){
- for(j = dw; j < dw+layer.crop_width; ++j){
- int index = j+layer.w*(i+layer.h*(c + layer.c*b));
- layer.output[count++] = input[index];
- }
+ row = i + dh;
+ index = col+layer.w*(row+layer.h*(c + layer.c*b));
+ layer.output[count++] = input[index];
}
}
}
--
Gitblit v1.10.0