mirror of
https://github.com/augustin64/projet-tipe
synced 2025-01-23 15:16:26 +01:00
Add cnn io doc
This commit is contained in:
parent
defb14f6cd
commit
bf3bddb577
79
doc/cnn.md
Normal file
79
doc/cnn.md
Normal file
@ -0,0 +1,79 @@
|
||||
# Réseau de neurones convolutionnel [lien](/src/cnn)
|
||||
|
||||
## 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 ...
|
||||
uint32_t|size|Nombre de couches du réseau
|
||||
uint32_t|initialisation|Fonction d'initialisation du réseau
|
||||
uint32_t|dropout|Probabilité d'abandon
|
||||
uint32_t|input_width[0]|
|
||||
uint32_t|input_depth[0]|
|
||||
uint32_t|...|
|
||||
uint32_t|...|
|
||||
uint32_t|input_width[n]|
|
||||
uint32_t|input_depth[n]|
|
||||
uint32_t|type_couche[0]|
|
||||
uint32_t|...|
|
||||
uint32_t|type_couche[n]|
|
||||
|
||||
> type_couche:
|
||||
> | 0 -> cnn
|
||||
> | 1 -> nn
|
||||
> | 2 -> pooling
|
||||
|
||||
### Pré-corps:
|
||||
|
||||
On stocke pour chaque couche des informations supplémentaires en fonction de son type:
|
||||
|
||||
#### Si la couche est un cnn:
|
||||
type | nom de la variable | commentaire
|
||||
:---:|:---:|:---:
|
||||
uint32_t|activation|
|
||||
uint32_t|k_size|
|
||||
uint32_t|rows|
|
||||
uint32_t|columns|
|
||||
|
||||
#### Si la couche est un nn:
|
||||
type | nom de la variable | commentaire
|
||||
:---:|:---:|:---:
|
||||
uint32_t|activation|
|
||||
uint32_t|input_units|
|
||||
uint32_t|output_units|
|
||||
|
||||
#### Si la couche est de type pooling:
|
||||
type | nom de la variable | commentaire
|
||||
:---:|:---:|:---:
|
||||
uint32_t|pooling|
|
||||
|
||||
|
||||
### Corps
|
||||
On constitue ensuite le corps du fichier à partir des données contenues dans chauqe couche de la manière suivante:
|
||||
|
||||
- Si la couche est de type pooling, on ne rajoute rien.
|
||||
|
||||
- Si la couche est de type cnn, on ajoute les biais et poids de manière croissante sur leurs indices:
|
||||
|
||||
type | nom de la variable | commentaire
|
||||
:---:|:---:|:---:
|
||||
uint32_t|bias[0][0][0]|biais
|
||||
uint32_t|...|
|
||||
uint32_t|bias[cnn->columns-1][cnn->k_size-1][cnn->k_size-1]|
|
||||
uint32_t|w[0][0][0][0]|poids
|
||||
uint32_t|...|
|
||||
uint32_t|w[cnn->rows][cnn->columns-1][cnn->k_size-1][cnn->k_size-1]|
|
||||
|
||||
- Si la couche est de type nn, on ajoute les poids de manière croissante sur leurs indices:
|
||||
|
||||
type | nom de la variable | commentaire
|
||||
:---:|:---:|:---:
|
||||
uint32_t|bias[0]|biais
|
||||
uint32_t|...|
|
||||
uint32_t|bias[nn->output_units-1]|biais
|
||||
uint32_t|weights[0][0]|poids
|
||||
uint32_t|...|
|
||||
uint32_t|weights[nn->input_units-1][nn->output_units-1]|
|
@ -11,7 +11,7 @@ uint32_t|magic_number|Variable servant à vérifier que le fichier n'est pas cor
|
||||
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|...|
|
||||
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
|
||||
|
||||
@ -23,6 +23,5 @@ 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|...|
|
||||
float|weights[n-1]|poids vers le dernier neurone de la couche suivante
|
Loading…
Reference in New Issue
Block a user