mirror of
https://github.com/augustin64/projet-tipe
synced 2025-01-23 23:26:25 +01:00
2.1 KiB
2.1 KiB
Réseau de neurones convolutionnel lien
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] |