From 77911169e788f11af0dd9688becfc67a591bf0d5 Mon Sep 17 00:00:00 2001 From: Julien Chemillier Date: Fri, 25 Mar 2022 19:19:27 +0100 Subject: [PATCH] Create src/struct --- src/mnist/neural_network.c | 30 ++---------------------------- src/mnist/struct/neuron.c | 17 +++++++++++++++++ 2 files changed, 19 insertions(+), 28 deletions(-) create mode 100644 src/mnist/struct/neuron.c diff --git a/src/mnist/neural_network.c b/src/mnist/neural_network.c index b035e0f..120e62a 100644 --- a/src/mnist/neural_network.c +++ b/src/mnist/neural_network.c @@ -4,36 +4,10 @@ #include #include +#include "struct/neuron.c" + #define TAUX_APPRENTISSAGE 0.15 // Définit le taux d'apprentissage du réseau neuronal, donc la rapidité d'adaptation du modèle (compris entre 0 et 1) -//<> Le nombre de couches doit être supérieur à 2 - -/*--------------------------------------------------- -----------------------Structures--------------------- ----------------------------------------------------*/ -typedef struct neurone_struct{ - float activation; // Caractérise l'activation du neurone - float* poids_sortants; // Liste de tous les poids des arêtes sortants du neurone - float biais; // Caractérise le biais du neurone - float z; // Sauvegarde des calculs faits sur le neurone (programmation dynamique) - - float dactivation; - float *dw; - float dbiais; - float dz; -} neurone_struct; - - -typedef struct couche_struct{ - int nb_neurone; // Nombre de neurones dans la couche (longueur de la liste ci-dessous) - neurone_struct* neurone; // Liste des neurones dans la couche -} couche_struct; - - -/*--------------------------------------------------- -----------------------Fonctions---------------------- ----------------------------------------------------*/ - couche_struct* reseau_neuronal; void creation_du_reseau_neuronal(int nb_couches, int* neurones_par_couche); diff --git a/src/mnist/struct/neuron.c b/src/mnist/struct/neuron.c new file mode 100644 index 0000000..e3ccce7 --- /dev/null +++ b/src/mnist/struct/neuron.c @@ -0,0 +1,17 @@ +typedef struct neurone_struct{ + float activation; // Caractérise l'activation du neurone + float* poids_sortants; // Liste de tous les poids des arêtes sortants du neurone + float biais; // Caractérise le biais du neurone + float z; // Sauvegarde des calculs faits sur le neurone (programmation dynamique) + + float dactivation; + float *dw; + float dbiais; + float dz; +} neurone_struct; + + +typedef struct couche_struct{ + int nb_neurone; // Nombre de neurones dans la couche (longueur de la liste ci-dessous) + neurone_struct* neurone; // Liste des neurones dans la couche +} couche_struct; \ No newline at end of file