mirror of
https://github.com/augustin64/projet-tipe
synced 2025-02-02 19:39:39 +01:00
Add nn io documentation
This commit is contained in:
parent
55db9985a5
commit
defb14f6cd
28
doc/nn.md
Normal file
28
doc/nn.md
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
# Réseau de neurones simple [lien](/src/mnist)
|
||||||
|
|
||||||
|
## Lecture/ Écriture du réseau de neurone:
|
||||||
|
Le fichier est au format IDX (format binaire)
|
||||||
|
Les informations sont stockées de la manière suivante:
|
||||||
|
|
||||||
|
### Header
|
||||||
|
type | nom de la variable | commentaire
|
||||||
|
:---:|:---:|:---:
|
||||||
|
uint32_t|magic_number|Variable servant à vérifier que le fichier n'est pas corrompu, vaut 2023
|
||||||
|
uint32_t|network->nb_layers|Nombre de couches du réseau
|
||||||
|
uint32_t|network->layers[0]->nb_neurons|Nombre de neurones de la première couche
|
||||||
|
uint32_t|network->layers[1]->nb_neurons|Nombre de neurones de la deuxième couche
|
||||||
|
uint32_t|...|-
|
||||||
|
uint32_t|network->layers[n-1]->nb_neurons|Nombre de neurones de la n-ième couche
|
||||||
|
uint32_t|network->layers[1]->nb_neurons|Nombre de neurones de la deuxième couche
|
||||||
|
|
||||||
|
|
||||||
|
### Corps
|
||||||
|
Et ensuite, pour chaque couche, chaque neurone:
|
||||||
|
type | nom de la variable | commentaire
|
||||||
|
:---:|:---:|:---:
|
||||||
|
float|activation|importance du neurone dans le réseau
|
||||||
|
float|biais|biais du neurone
|
||||||
|
float|weights[0]|poids vers le premier neurone de la couche suivante
|
||||||
|
float|weights[1]|poids vers le deuxième neurone de la couche suivante
|
||||||
|
float|...|-
|
||||||
|
float|weights[n-1]|poids vers le dernier neurone de la couche suivante
|
@ -1,6 +1,7 @@
|
|||||||
#ifndef DEF_NEURON_H
|
#ifndef DEF_NEURON_H
|
||||||
#define DEF_NEURON_H
|
#define DEF_NEURON_H
|
||||||
|
|
||||||
|
// Neurone
|
||||||
typedef struct Neuron {
|
typedef struct Neuron {
|
||||||
float* weights; // Liste de tous les poids des arêtes sortants du neurone
|
float* weights; // Liste de tous les poids des arêtes sortants du neurone
|
||||||
float bias; // Caractérise le bias du neurone
|
float bias; // Caractérise le bias du neurone
|
||||||
@ -12,12 +13,13 @@ typedef struct Neuron {
|
|||||||
float last_back_bias; // Dernier changement de back_bias
|
float last_back_bias; // Dernier changement de back_bias
|
||||||
} Neuron;
|
} Neuron;
|
||||||
|
|
||||||
|
// Couche du réseau de neurones
|
||||||
typedef struct Layer {
|
typedef struct Layer {
|
||||||
int nb_neurons; // Nombre de neurones dans la couche (longueur du tableau ci-dessous)
|
int nb_neurons; // Nombre de neurones dans la couche (longueur du tableau ci-dessous)
|
||||||
Neuron** neurons; // Tableau des neurones dans la couche
|
Neuron** neurons; // Tableau des neurones dans la couche
|
||||||
} Layer;
|
} Layer;
|
||||||
|
|
||||||
|
// Réseau de neurones
|
||||||
typedef struct Network {
|
typedef struct Network {
|
||||||
int nb_layers; // Nombre de couches dans le réseau neuronal (longueur du tableau ci-dessous)
|
int nb_layers; // Nombre de couches dans le réseau neuronal (longueur du tableau ci-dessous)
|
||||||
Layer** layers; // Tableau des couches dans le réseau neuronal
|
Layer** layers; // Tableau des couches dans le réseau neuronal
|
||||||
|
Loading…
Reference in New Issue
Block a user