1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
| #include "dropout_layer.h"
| #include "stdlib.h"
| #include "stdio.h"
|
| dropout_layer *make_dropout_layer(int batch, int inputs, float probability)
| {
| fprintf(stderr, "Dropout Layer: %d inputs, %f probability\n", inputs, probability);
| dropout_layer *layer = calloc(1, sizeof(dropout_layer));
| layer->probability = probability;
| layer->inputs = inputs;
| layer->batch = batch;
| return layer;
| }
|
| void forward_dropout_layer(dropout_layer layer, float *input)
| {
| int i;
| for(i = 0; i < layer.batch * layer.inputs; ++i){
| if((float)rand()/RAND_MAX < layer.probability) input[i] = 0;
| else input[i] /= (1-layer.probability);
| }
| }
| void backward_dropout_layer(dropout_layer layer, float *input, float *delta)
| {
| // Don't do shit LULZ
| }
|
|