crop layer scaling and trans on cpu
| | |
| | | GPU=1 |
| | | GPU=0 |
| | | DEBUG=0 |
| | | ARCH= -arch=sm_52 |
| | | |
| | |
| | | #include "cuda.h" |
| | | #ifndef ACTIVATIONS_H |
| | | #define ACTIVATIONS_H |
| | | #include "cuda.h" |
| | | #include "math.h" |
| | | |
| | | typedef enum{ |
| | | LOGISTIC, RELU, RELIE, LINEAR, RAMP, TANH, PLSE |
| | |
| | | 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; |
| | |
| | | |
| | | #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; |
| | |
| | | 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; |
| | |
| | | } |
| | | 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; |
| | | } |
| | | } |
| | | } |
| | |
| | | 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(); |