| | |
| | | layer.norms = calloc(h * w * c * batch, sizeof(float)); |
| | | layer.inputs = w*h*c; |
| | | layer.outputs = layer.inputs; |
| | | |
| | | layer.forward = forward_normalization_layer; |
| | | layer.backward = backward_normalization_layer; |
| | | #ifdef GPU |
| | | layer.output_gpu = cuda_make_array(0, h * w * c * batch); |
| | | layer.delta_gpu = cuda_make_array(0, h * w * c * batch); |
| | | layer.squared_gpu = cuda_make_array(0, h * w * c * batch); |
| | | layer.norms_gpu = cuda_make_array(0, h * w * c * batch); |
| | | layer.forward_gpu = forward_normalization_layer_gpu; |
| | | layer.backward_gpu = backward_normalization_layer_gpu; |
| | | |
| | | layer.output_gpu = cuda_make_array(layer.output, h * w * c * batch); |
| | | layer.delta_gpu = cuda_make_array(layer.delta, h * w * c * batch); |
| | | layer.squared_gpu = cuda_make_array(layer.squared, h * w * c * batch); |
| | | layer.norms_gpu = cuda_make_array(layer.norms, h * w * c * batch); |
| | | #endif |
| | | return layer; |
| | | } |
| | |
| | | cuda_free(layer->delta_gpu); |
| | | cuda_free(layer->squared_gpu); |
| | | cuda_free(layer->norms_gpu); |
| | | layer->output_gpu = cuda_make_array(0, h * w * c * batch); |
| | | layer->delta_gpu = cuda_make_array(0, h * w * c * batch); |
| | | layer->squared_gpu = cuda_make_array(0, h * w * c * batch); |
| | | layer->norms_gpu = cuda_make_array(0, h * w * c * batch); |
| | | layer->output_gpu = cuda_make_array(layer->output, h * w * c * batch); |
| | | layer->delta_gpu = cuda_make_array(layer->delta, h * w * c * batch); |
| | | layer->squared_gpu = cuda_make_array(layer->squared, h * w * c * batch); |
| | | layer->norms_gpu = cuda_make_array(layer->norms, h * w * c * batch); |
| | | #endif |
| | | } |
| | | |