From 576cb9c4902c6e49e1c9096e1e08ba68348218c6 Mon Sep 17 00:00:00 2001 From: vikshar Date: Sat, 11 Jan 2025 16:04:23 -0600 Subject: [PATCH] free layer --- cnn.h | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/cnn.h b/cnn.h index a963914..510e78d 100644 --- a/cnn.h +++ b/cnn.h @@ -143,3 +143,29 @@ Layer* create_fc(int input_neurons, int output_neurons, fcpos position) { return layer; } +void free_layer(Layer* layer) { + if (!layer) return; + switch (layer->type) { + case conv: + for (int f = 0; f < layer->params.conv_params.num_filters; f++) { + for (int h = 0; h < layer->params.conv_params.num_filters; h++) { + free(layer->params.conv_params.filters[f][h]); + } + free(layer->params.conv_params.filters[f]); + } + free(layer->params.conv_params.filters); + break; + case fully_connected: + for (int i = 0; i < layer->params.fc_params.output_neurons; i++) { + free(layer->params.fc_params.weights[i]); + } + free(layer->params.fc_params.weights); + free(layer->params.fc_params.biases); + break; + default: + break; + } + free(layer); +} + +