56 lines
1.3 KiB
C
Raw Normal View History

2022-07-05 08:13:25 +02:00
#include "struct.h"
2022-06-30 10:27:42 +02:00
2022-09-12 17:56:44 +02:00
#ifndef DEF_MAIN_H
#define DEF_MAIN_H
2022-06-30 10:27:42 +02:00
2022-07-05 08:13:25 +02:00
/*
* Renvoie si oui ou non (1 ou 0) le neurone va être abandonné
*/
2022-10-07 15:32:54 +02:00
int will_be_drop(int dropout_prob);
2022-07-05 08:13:25 +02:00
/*
* Écrit une image 28*28 au centre d'un tableau 32*32 et met à 0 le reste
2022-07-05 08:13:25 +02:00
*/
2022-10-07 15:32:54 +02:00
void write_image_in_network_32(int** image, int height, int width, float** input);
2022-07-05 08:13:25 +02:00
/*
* Propage en avant le cnn
*/
2022-06-30 10:27:42 +02:00
void forward_propagation(Network* network);
2022-07-05 08:13:25 +02:00
/*
* Propage en arrière le cnn
*/
2022-10-07 15:32:54 +02:00
void backward_propagation(Network* network, float wanted_number);
2022-07-05 08:13:25 +02:00
2022-10-31 20:08:42 +01:00
/*
* Copie les données de output dans output_a (Sachant que les deux matrices ont les mêmes dimensions)
*/
void copy_input_to_input_z(float*** output, float*** output_a, int output_depth, int output_rows, int output_columns);
2022-10-26 18:27:46 +02:00
/*
* Bascule les données de d_weights dans weights
*/
void update_weights(Network* network);
/*
* Bascule les données de d_bias dans bias
*/
void update_bias(Network* network);
2022-07-05 08:13:25 +02:00
/*
2022-10-07 15:32:54 +02:00
* Renvoie l'erreur du réseau neuronal pour une sortie (RMS)
*/
float compute_mean_squared_error(float* output, float* wanted_output, int len);
/*
* Renvoie l'erreur du réseau neuronal pour une sortie (CEL)
2022-07-05 08:13:25 +02:00
*/
2022-06-30 10:27:42 +02:00
float compute_cross_entropy_loss(float* output, float* wanted_output, int len);
2022-07-05 08:13:25 +02:00
/*
* On considère que la sortie voulue comporte 10 éléments
*/
float* generate_wanted_output(float wanted_number);
2022-06-30 10:27:42 +02:00
#endif