crop layer scaling and trans on cpu

This commit is contained in:
Joseph Redmon 2015-04-15 01:04:38 -07:00
parent d97331b88f
commit 47528e37cf
5 changed files with 16 additions and 14 deletions

View File

@ -1,4 +1,4 @@
GPU=1
GPU=0
DEBUG=0
ARCH= -arch=sm_52

View File

@ -1,6 +1,7 @@
#include "cuda.h"
#ifndef ACTIVATIONS_H
#define ACTIVATIONS_H
#include "cuda.h"
#include "math.h"
typedef enum{
LOGISTIC, RELU, RELIE, LINEAR, RAMP, TANH, PLSE

View File

@ -38,15 +38,6 @@ cost_layer *make_cost_layer(int batch, int inputs, COST_TYPE type)
return layer;
}
void pull_cost_layer(cost_layer layer)
{
cuda_pull_array(layer.delta_gpu, layer.delta, layer.batch*layer.inputs);
}
void push_cost_layer(cost_layer layer)
{
cuda_push_array(layer.delta_gpu, layer.delta, layer.batch*layer.inputs);
}
void forward_cost_layer(cost_layer layer, network_state state)
{
if (!state.truth) return;
@ -63,6 +54,16 @@ void backward_cost_layer(const cost_layer layer, network_state state)
#ifdef GPU
void pull_cost_layer(cost_layer layer)
{
cuda_pull_array(layer.delta_gpu, layer.delta, layer.batch*layer.inputs);
}
void push_cost_layer(cost_layer layer)
{
cuda_push_array(layer.delta_gpu, layer.delta, layer.batch*layer.inputs);
}
void forward_cost_layer_gpu(cost_layer layer, network_state state)
{
if (!state.truth) return;

View File

@ -37,6 +37,8 @@ void forward_crop_layer(const crop_layer layer, network_state state)
int flip = (layer.flip && rand()%2);
int dh = rand()%(layer.h - layer.crop_height + 1);
int dw = rand()%(layer.w - layer.crop_width + 1);
float scale = 2;
float trans = -1;
if(!state.train){
flip = 0;
dh = (layer.h - layer.crop_height)/2;
@ -53,7 +55,7 @@ void forward_crop_layer(const crop_layer layer, network_state state)
}
row = i + dh;
index = col+layer.w*(row+layer.h*(c + layer.c*b));
layer.output[count++] = state.input[index];
layer.output[count++] = state.input[index]*scale + trans;
}
}
}

View File

@ -203,8 +203,6 @@ void test_detection(char *cfgfile, char *weightfile)
fgets(filename, 256, stdin);
strtok(filename, "\n");
image im = load_image_color(filename, im_size, im_size);
translate_image(im, -128);
scale_image(im, 1/128.);
printf("%d %d %d\n", im.h, im.w, im.c);
float *X = im.data;
time=clock();