From b097f30d6473f1c58d0e99565c6f4067af8d635c Mon Sep 17 00:00:00 2001 From: Ghost_Element Date: Tue, 19 Sep 2023 14:47:18 +0200 Subject: [PATCH] neuroal_network.c new_network print_network - not needed free_network --- neuronal_network.c | 38 ++++++++++++++++++++++++++++++++++---- neuronal_network.h | 2 +- 2 files changed, 35 insertions(+), 5 deletions(-) diff --git a/neuronal_network.c b/neuronal_network.c index 9bb8b39..1c58d21 100644 --- a/neuronal_network.c +++ b/neuronal_network.c @@ -1,9 +1,39 @@ - +#include #include "neuronal_network.h" -Neural_Network* new_network(int input_size, int hidden_size, int output_size, double learning_rate); -void print_network(Neural_Network* network); -void free_network(Neural_Network* network); +Neural_Network* new_network(int input_size, int hidden_size, int output_size, double learning_rate){ + Neural_Network network = malloc(sizeof(Neural_Network)); + // initialize networks variables + network.input_size = input_size; + network.hidden_size = hidden_size; + network.output_size = output_size; + network.learning_rate = learning_rate; + + network.weights_1 = matrix_randomize(matrix_create(hidden_size, input_size)); + network.weights_2 = matrix_randomize(matrix_create(hidden_size, hidden_size)); + network.weights_3 = matrix_randomize(matrix_create(hidden_size, hidden_size)); + network.weights_output = matrix_randomize(matrix_create(output_size, hidden_size)); + network.bias_1 = matrix_randomize(matrix_create(hidden_size, 1)); + network.bias_2 = matrix_randomize(matrix_create(hidden_size, 1)); + network.bias_3 = matrix_randomize(matrix_create(hidden_size, 1)); + //network.bias_output = matrix_create(output_size, 1); // do we need it? + + return network; +} + +//void print_network(Neural_Network* network){}; + +void free_network(Neural_Network* network){ + matrix_free(network->weights_1); + matrix_free(network->weights_2); + matrix_free(network->weights_3); + matrix_free(network->weights_output); + matrix_free(network->bias_1); + matrix_free(network->bias_2); + matrix_free(network->bias_3); + free(network); +} + void save_network(Neural_Network* network, char* file); Neural_Network* load_network(char* file); diff --git a/neuronal_network.h b/neuronal_network.h index 8b6ceb9..a21d553 100644 --- a/neuronal_network.h +++ b/neuronal_network.h @@ -26,7 +26,7 @@ typedef struct { } Neural_Network; Neural_Network* new_network(int input_size, int hidden_size, int output_size, double learning_rate); -void print_network(Neural_Network* network); +//void print_network(Neural_Network* network); void free_network(Neural_Network* network); void save_network(Neural_Network* network, char* file);