2014-08-08 23:04:15 +04:00
|
|
|
#ifndef DROPOUT_LAYER_H
|
|
|
|
#define DROPOUT_LAYER_H
|
2014-11-19 00:51:04 +03:00
|
|
|
#include "opencl.h"
|
2014-08-08 23:04:15 +04:00
|
|
|
|
|
|
|
typedef struct{
|
|
|
|
int batch;
|
|
|
|
int inputs;
|
|
|
|
float probability;
|
2014-12-13 23:01:21 +03:00
|
|
|
float scale;
|
2014-11-19 00:51:04 +03:00
|
|
|
float *rand;
|
2014-12-19 02:46:45 +03:00
|
|
|
float *output;
|
2014-12-13 23:01:21 +03:00
|
|
|
#ifdef GPU
|
2014-11-19 00:51:04 +03:00
|
|
|
cl_mem rand_cl;
|
2014-12-19 02:46:45 +03:00
|
|
|
cl_mem output_cl;
|
2014-11-19 00:51:04 +03:00
|
|
|
#endif
|
2014-08-08 23:04:15 +04:00
|
|
|
} dropout_layer;
|
|
|
|
|
|
|
|
dropout_layer *make_dropout_layer(int batch, int inputs, float probability);
|
|
|
|
|
|
|
|
void forward_dropout_layer(dropout_layer layer, float *input);
|
2014-12-13 23:01:21 +03:00
|
|
|
void backward_dropout_layer(dropout_layer layer, float *delta);
|
|
|
|
|
|
|
|
#ifdef GPU
|
2014-11-19 00:51:04 +03:00
|
|
|
void forward_dropout_layer_gpu(dropout_layer layer, cl_mem input);
|
2014-12-13 23:01:21 +03:00
|
|
|
void backward_dropout_layer_gpu(dropout_layer layer, cl_mem delta);
|
2014-08-08 23:04:15 +04:00
|
|
|
|
|
|
|
#endif
|
2014-11-19 00:51:04 +03:00
|
|
|
#endif
|