diff --git a/src/cnn/cnn.c b/src/cnn/cnn.c index 9ebfbe9..fbf7949 100644 --- a/src/cnn/cnn.c +++ b/src/cnn/cnn.c @@ -106,7 +106,7 @@ void forward_propagation(Network* network) { choose_apply_function_matrix(activation, output, output_depth, output_width); } else if (k_i->nn) { // Full connection - if (input_depth==1) { // Vecteur -> Vecteur + if (k_i->linearisation == 0) { // Vecteur -> Vecteur make_dense(k_i->nn, input[0][0], output[0][0], input_width, output_width); } else { // Matrice -> Vecteur make_dense_linearised(k_i->nn, input, output[0][0], input_depth, input_width, output_width); @@ -155,7 +155,7 @@ void backward_propagation(Network* network, float wanted_number) { backward_convolution(k_i->cnn, input, input_z, output, input_depth, input_width, output_depth, output_width, d_f, i==0); } else if (k_i->nn) { // Full connection ptr d_f = get_function_activation(activation); - if (input_depth==1) { // Vecteur -> Vecteur + if (k_i->linearisation == 0) { // Vecteur -> Vecteur backward_fully_connected(k_i->nn, input[0][0], input_z[0][0], output[0][0], input_width, output_width, d_f, i==0); } else { // Matrice -> vecteur backward_linearisation(k_i->nn, input, input_z, output[0][0], input_depth, input_width, output_width, d_f); diff --git a/src/cnn/creation.c b/src/cnn/creation.c index d071a3c..79077fc 100644 --- a/src/cnn/creation.c +++ b/src/cnn/creation.c @@ -34,7 +34,7 @@ Network* create_network(int max_size, float learning_rate, int dropout, int init } Network* create_network_lenet5(float learning_rate, int dropout, int activation, int initialisation, int input_dim, int input_depth) { - Network* network = create_network(8, learning_rate, dropout, initialisation, input_dim, input_depth); + Network* network = create_network(8, learning_rate, dropout, initialisation, input_dim, input_depth); network->kernel[0]->activation = activation; network->kernel[0]->linearisation = 0; add_convolution(network, 6, 28, activation); @@ -95,7 +95,6 @@ void add_2d_average_pooling(Network* network, int dim_output) { printf("Impossible de rajouter une couche d'average pooling, le réseau est déjà plein\n"); return; } - int kernel_size = dim_input/dim_output; if (dim_input%dim_output != 0) { printf("Erreur de dimension dans l'average pooling\n"); return; diff --git a/src/cnn/free.c b/src/cnn/free.c index 445572e..c33e6be 100644 --- a/src/cnn/free.c +++ b/src/cnn/free.c @@ -117,7 +117,7 @@ void free_network(Network* network) { if (network->kernel[i]->cnn != NULL) { // Convolution free_convolution(network, i); } else if (network->kernel[i]->nn != NULL) { - if (network->depth[i]==1) { // Dense non linearised + if (network->kernel[i]->linearisation == 0) { // Dense non linearised free_dense(network, i); } else { // Dense lineariation free_dense_linearisation(network, i); diff --git a/src/cnn/update.c b/src/cnn/update.c index b530e44..4848b9f 100644 --- a/src/cnn/update.c +++ b/src/cnn/update.c @@ -31,7 +31,7 @@ void update_weights(Network* network, Network* d_network, int nb_images) { } } } else if (k_i->nn) { // Full connection - if (input_depth==1) { // Vecteur -> Vecteur + if (k_i->linearisation == 0) { // Vecteur -> Vecteur Kernel_nn* nn = k_i->nn; Kernel_nn* d_nn = dk_i->nn; for (int a=0; ann) { // Full connection - if (input_depth==1) { // Vecteur -> Vecteur + if (k_i->linearisation == 0) { // Vecteur -> Vecteur Kernel_nn* nn = k_i_1->nn; for (int a=0; a