| | |
| | | l.rolling_mean = calloc(n, sizeof(float)); |
| | | l.rolling_variance = calloc(n, sizeof(float)); |
| | | } |
| | | if(adam){ |
| | | l.adam = 1; |
| | | l.m = calloc(c*n*size*size, sizeof(float)); |
| | | l.v = calloc(c*n*size*size, sizeof(float)); |
| | | } |
| | | |
| | | #ifdef GPU |
| | | l.forward_gpu = forward_convolutional_layer_gpu; |
| | |
| | | |
| | | if(gpu_index >= 0){ |
| | | if (adam) { |
| | | l.adam = 1; |
| | | l.m_gpu = cuda_make_array(l.weight_updates, c*n*size*size); |
| | | l.v_gpu = cuda_make_array(l.weight_updates, c*n*size*size); |
| | | l.m_gpu = cuda_make_array(l.m, c*n*size*size); |
| | | l.v_gpu = cuda_make_array(l.v, c*n*size*size); |
| | | } |
| | | |
| | | l.weights_gpu = cuda_make_array(l.weights, c*n*size*size); |
| | |
| | | |
| | | l->delta_gpu = cuda_make_array(l->delta, l->batch*out_h*out_w*l->n); |
| | | l->output_gpu = cuda_make_array(l->output, l->batch*out_h*out_w*l->n); |
| | | |
| | | if(l->batch_normalize){ |
| | | cuda_free(l->x_gpu); |
| | | cuda_free(l->x_norm_gpu); |
| | | |
| | | l->x_gpu = cuda_make_array(l->output, l->batch*l->outputs); |
| | | l->x_norm_gpu = cuda_make_array(l->output, l->batch*l->outputs); |
| | | } |
| | | #ifdef CUDNN |
| | | cudnn_convolutional_setup(l); |
| | | #endif |