tipe/src/cnn/include/update.h

36 lines
962 B
C
Raw Normal View History

2022-11-08 18:04:58 +01:00
#include "struct.h"
2022-11-03 16:28:03 +01:00
#ifndef DEF_UPDATE_H
#define DEF_UPDATE_H
2023-03-01 19:12:57 +01:00
/*
* Des valeurs trop grandes dans le réseau risqueraient de provoquer des overflows notamment.
* On utilise donc la méthode gradient_clipping,
* qui consiste à majorer tous les biais et poids par un hyper-paramètre choisi précédemment.
* https://arxiv.org/pdf/1905.11881.pdf
*/
#define CLIP_VALUE 300
2023-01-25 11:18:47 +01:00
2022-11-03 16:28:03 +01:00
/*
* Met à jours les poids à partir de données obtenus après plusieurs backpropagations
* Puis met à 0 tous les d_weights
*/
2023-01-20 13:41:38 +01:00
void update_weights(Network* network, Network* d_network);
2022-11-03 16:28:03 +01:00
/*
* Met à jours les biais à partir de données obtenus après plusieurs backpropagations
* Puis met à 0 tous les d_bias
*/
2023-01-20 13:41:38 +01:00
void update_bias(Network* network, Network* d_network);
2022-11-03 16:28:03 +01:00
/*
* Met à 0 toutes les données de backpropagation de poids
*/
void reset_d_weights(Network* network);
/*
* Met à 0 toutes les données de backpropagation de biais
*/
void reset_d_bias(Network* network);
#endif