mirror of
https://github.com/augustin64/projet-tipe
synced 2025-01-23 23:26:25 +01:00
Add comments in headers files
This commit is contained in:
parent
265ffae273
commit
828d7b83cc
@ -1,6 +1,9 @@
|
||||
#ifndef DEF_MAIN_H
|
||||
#define DEF_MAIN_H
|
||||
|
||||
/*
|
||||
* Structure donnée en argument à la fonction 'train_images'
|
||||
*/
|
||||
typedef struct TrainParameters {
|
||||
Network* network;
|
||||
int*** images;
|
||||
@ -12,16 +15,78 @@ typedef struct TrainParameters {
|
||||
float accuracy;
|
||||
} TrainParameters;
|
||||
|
||||
|
||||
/*
|
||||
* Affiche une image ainsi que les prévisions faites par le réseau de neurones sur sa valeur
|
||||
* width, height: dimensions de l'image
|
||||
* image: tableau 2*2 contenant l'image
|
||||
* previsions: prévisions faites par le réseau neuronal
|
||||
*/
|
||||
void print_image(unsigned int width, unsigned int height, int** image, float* previsions);
|
||||
|
||||
/*
|
||||
* Renvoie l'indice de l'élément maximum d'un tableau de taille n
|
||||
*/
|
||||
int indice_max(float* tab, int n);
|
||||
|
||||
/*
|
||||
* Affiche un message d'aide
|
||||
* call: chaîne de caractères utilisées pour appeler le programme
|
||||
*/
|
||||
void help(char* call);
|
||||
|
||||
/*
|
||||
* Écrit l'image les valeurs d'un tableau dans la première couche d'un réseau neuronal
|
||||
* image: tableau contenant l'image
|
||||
* network: réseau neuronal
|
||||
* height, width: dimensions de l'image
|
||||
*/
|
||||
void write_image_in_network(int** image, Network* network, int height, int width);
|
||||
|
||||
/*
|
||||
* Sous fonction de 'train' assignée à un thread
|
||||
* parameters: voir la structure 'TrainParameters'
|
||||
*/
|
||||
void* train_images(void* parameters);
|
||||
|
||||
/*
|
||||
* Fonction d'entraînement du réseau
|
||||
* epochs: nombre d'époques
|
||||
* layers: nombre de couches
|
||||
* neurons: nombre de neurones sur la première couche
|
||||
* recovery: nom du fichier contenant un réseau sur lequel continuer l'entraînement (Null si non utilisé)
|
||||
* image_file: nom du fichier contenant les images
|
||||
* label_file: nom du fichier contenant les labels associés
|
||||
* out: nom du fichier dans lequel écrire le réseau entraîné
|
||||
* delta: nom du fichier où écrire le réseau différentiel (utilisation en parallèle avec d'autres clients) (Null si non utilisé)
|
||||
* nb_images_to_process: nombre d'images sur lesquelles entraîner le réseau (-1 si non utilisé)
|
||||
* start: index auquel démarrer si nb_images_to_process est utilisé (0 si non utilisé)
|
||||
*/
|
||||
void train(int epochs, int layers, int neurons, char* recovery, char* image_file, char* label_file, char* out, char* delta, int nb_images_to_process, int start);
|
||||
|
||||
/*
|
||||
* Reconnaissance d'un set d'images, renvoie un tableau de float contentant les prédictions
|
||||
* modele: nom du fichier contenant le réseau neuronal
|
||||
* entree: nom du fichier contenant les images à reconnaître
|
||||
*/
|
||||
float** recognize(char* modele, char* entree);
|
||||
|
||||
/*
|
||||
* Renvoie les prédictions d'images sur stdout
|
||||
* modele: nom du fichier contenant le réseau neuronal
|
||||
* entree: fichier contenant les images
|
||||
* sortie: vaut 'text' ou 'json', spécifie le format auquel afficher les prédictions
|
||||
*/
|
||||
void print_recognize(char* modele, char* entree, char* sortie);
|
||||
|
||||
/*
|
||||
* Teste un réseau neuronal avec un fichier d'images ainsi que leurs propriétés
|
||||
* modele: nom du fichier contenant le réseau neuronal
|
||||
* fichier_images: nom du fichier contenant les images
|
||||
* fichier_labels: nom du fichier contenant les labels
|
||||
* preview_fails: faut-il afficher les images qui ne sont pas correctement reconnues ?
|
||||
*/
|
||||
void test(char* modele, char* fichier_images, char* fichier_labels, bool preview_fails);
|
||||
|
||||
int main(int argc, char* argv[]);
|
||||
|
||||
#endif
|
@ -7,11 +7,30 @@
|
||||
#define DEF_MNIST_H
|
||||
|
||||
uint32_t swap_endian(uint32_t val);
|
||||
|
||||
/*
|
||||
* Renvoie le nombre d'éléments dans un set de labels au format IDX
|
||||
*/
|
||||
uint32_t read_mnist_labels_nb_images(char* filename);
|
||||
|
||||
/*
|
||||
* Lit et renvoie une image dans un fichier spécifié par ptr
|
||||
*/
|
||||
int** read_image(unsigned int width, unsigned int height, FILE* ptr);
|
||||
|
||||
/*
|
||||
* Renvoie les paramètres [nb_elem, width, height]
|
||||
*/
|
||||
int* read_mnist_images_parameters(char* filename);
|
||||
int* read_mnist_labels_parameters(char* filename);
|
||||
|
||||
/*
|
||||
* Charge dans la mémoire des images du set de données MNIST au format IDX
|
||||
*/
|
||||
int*** read_mnist_images(char* filename);
|
||||
|
||||
/*
|
||||
* Charge dans la mémoire des labels du set de données MNIST au format IDX
|
||||
*/
|
||||
unsigned int* read_mnist_labels(char* filename);
|
||||
|
||||
#endif
|
@ -11,7 +11,6 @@ uint32_t swap_endian(uint32_t val) {
|
||||
}
|
||||
|
||||
|
||||
// Renvoie une image sous forme d'un int**
|
||||
int** read_image(unsigned int width, unsigned int height, FILE* ptr) {
|
||||
unsigned char buffer[width*height];
|
||||
int** image = (int**)malloc(sizeof(int*)*height);
|
||||
@ -30,7 +29,7 @@ int** read_image(unsigned int width, unsigned int height, FILE* ptr) {
|
||||
return image;
|
||||
}
|
||||
|
||||
// renvoie [nb_elem, width, height]
|
||||
|
||||
int* read_mnist_images_parameters(char* filename) {
|
||||
int* tab = (int*)malloc(sizeof(int)*3);
|
||||
FILE *ptr;
|
||||
@ -62,6 +61,7 @@ int* read_mnist_images_parameters(char* filename) {
|
||||
return tab;
|
||||
}
|
||||
|
||||
|
||||
uint32_t read_mnist_labels_nb_images(char* filename) {
|
||||
FILE *ptr;
|
||||
|
||||
@ -84,7 +84,7 @@ uint32_t read_mnist_labels_nb_images(char* filename) {
|
||||
return number_of_images;
|
||||
}
|
||||
|
||||
// Lit un set de données images sous format de la base de données MNIST
|
||||
|
||||
int*** read_mnist_images(char* filename) {
|
||||
FILE *ptr;
|
||||
|
||||
@ -120,7 +120,7 @@ int*** read_mnist_images(char* filename) {
|
||||
return tab;
|
||||
}
|
||||
|
||||
// Renvoie des labels formattés sous le format de la base MNIST
|
||||
// Renvoie des labels formatés sous le format de la base MNIST
|
||||
unsigned int* read_mnist_labels(char* filename) {
|
||||
FILE* ptr;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user