tipe/src/cnn/struct.h

42 lines
1.4 KiB
C
Raw Normal View History

2022-07-05 08:13:25 +02:00
#ifndef DEF_STRUCT_H
#define DEF_STRUCT_H
typedef struct Kernel_cnn {
int k_size;
int rows;
int columns;
int b;
float*** bias; // De dimension columns*k_size*k_size
float*** d_bias; // De dimension columns*k_size*k_size
float**** w; // De dimension rows*columns*k_size*k_size
float**** d_w; // De dimension rows*columns*k_size*k_size
} Kernel_cnn;
typedef struct Kernel_nn {
2022-09-12 17:56:44 +02:00
int input_units; // Nombre d'éléments en entrée
2022-07-05 08:13:25 +02:00
int output_units;
float* bias; // De dimension output_units
float* d_bias; // De dimension output_units
float** weights; // De dimension input_units*output_units
float** d_weights; // De dimension input_units*output_units
} Kernel_nn;
typedef struct Kernel {
Kernel_cnn* cnn;
Kernel_nn* nn;
int activation; // Vaut l'activation sauf pour un pooling où il: vaut kernel_size*100 + activation
} Kernel;
typedef struct Network{
int dropout; // Contient la probabilité d'abandon entre 0 et 100 (inclus)
int initialisation; // Contient le type d'initialisation
int max_size; // Taille maximale du réseau après initialisation
int size; // Taille actuelle du réseau
2022-09-12 17:56:44 +02:00
int* width; // Contient les dimensions de l'input (width*depth)
int* depth; // Contient les dimensions de l'input (width*depth)
2022-09-10 17:17:49 +02:00
Kernel** kernel;
2022-09-12 17:56:44 +02:00
float**** input; // Équivalent du z
2022-07-05 08:13:25 +02:00
} Network;
#endif