darknet  v3
dropout_layer_kernels.cu
Go to the documentation of this file.
1 #include "cuda_runtime.h"
2 #include "curand.h"
3 #include "cublas_v2.h"
4 
5 extern "C" {
6 #include "dropout_layer.h"
7 #include "cuda.h"
8 #include "utils.h"
9 }
10 
11 __global__ void yoloswag420blazeit360noscope(float *input, int size, float *rand, float prob, float scale)
12 {
13  int id = (blockIdx.x + blockIdx.y*gridDim.x) * blockDim.x + threadIdx.x;
14  if(id < size) input[id] = (rand[id] < prob) ? 0 : input[id]*scale;
15 }
16 
18 {
19  if (!net.train) return;
20  int size = layer.inputs*layer.batch;
21  cuda_random(layer.rand_gpu, size);
22  /*
23  int i;
24  for(i = 0; i < size; ++i){
25  layer.rand[i] = rand_uniform();
26  }
27  cuda_push_array(layer.rand_gpu, layer.rand, size);
28  */
29 
30  yoloswag420blazeit360noscope<<<cuda_gridsize(size), BLOCK>>>(net.input_gpu, size, layer.rand_gpu, layer.probability, layer.scale);
31  check_error(cudaPeekAtLastError());
32 }
33 
35 {
36  if(!net.delta_gpu) return;
37  int size = layer.inputs*layer.batch;
38 
39  yoloswag420blazeit360noscope<<<cuda_gridsize(size), BLOCK>>>(net.delta_gpu, size, layer.rand_gpu, layer.probability, layer.scale);
40  check_error(cudaPeekAtLastError());
41 }
float scale
Definition: darknet.h:212
__global__ void yoloswag420blazeit360noscope(float *input, int size, float *rand, float prob, float scale)
int train
Definition: darknet.h:488
float probability
Definition: darknet.h:211
int inputs
Definition: darknet.h:134
int batch
Definition: darknet.h:131
void forward_dropout_layer_gpu(dropout_layer layer, network net)
void backward_dropout_layer_gpu(dropout_layer layer, network net)
Definition: darknet.h:119