| | |
| | | int n = l.h*l.w; |
| | | int k = l.c; |
| | | |
| | | bias_output(l.output, l.biases, l.batch, l.n, size); |
| | | fill_cpu(l.outputs*l.batch, 0, l.output, 1); |
| | | |
| | | for(i = 0; i < l.batch; ++i){ |
| | | float *a = l.filters; |
| | |
| | | |
| | | col2im_cpu(c, l.n, out_h, out_w, l.size, l.stride, 0, l.output+i*l.n*size); |
| | | } |
| | | add_bias(l.output, l.biases, l.batch, l.n, size); |
| | | activate_array(l.output, l.batch*l.n*size, l.activation); |
| | | } |
| | | |
| | |
| | | gradient_array(l.output, size*l.n*l.batch, l.activation, l.delta); |
| | | backward_bias(l.bias_updates, l.delta, l.batch, l.n, size); |
| | | |
| | | if(state.delta) memset(state.delta, 0, l.batch*l.h*l.w*l.c*sizeof(float)); |
| | | |
| | | for(i = 0; i < l.batch; ++i){ |
| | | int m = l.c; |
| | | int n = l.size*l.size*l.n; |