From b4c345e6a5fa929ba20eac19183b9c777055f52d Mon Sep 17 00:00:00 2001 From: Gaspard Coulet Date: Wed, 28 Apr 2021 23:12:36 +0200 Subject: Initial commit --- Neurone/Neurone.cpp | 131 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100644 Neurone/Neurone.cpp (limited to 'Neurone/Neurone.cpp') diff --git a/Neurone/Neurone.cpp b/Neurone/Neurone.cpp new file mode 100644 index 0000000..0f08602 --- /dev/null +++ b/Neurone/Neurone.cpp @@ -0,0 +1,131 @@ +#include"./Neurone.h" + +/** +* Constructeur par defauts +* @method Neurone::Neurone +*/ +Neurone::Neurone(){ + n = 0; +} +/** + * Constructeur par nombre d'entrées + * @method Neurone::Neurone + * @param n Nombre d'entrées + * @param n Fonction d'Activation + */ +Neurone::Neurone(int n,FonctionActivation::EnumFonctionActivation fct){ + this->n = n; + fonctionActivation.setFonctionActivation(fct); + aleaWeights(); +} +/** + * Constructeur par arguments + * @method Neurone::Neurone + * @param taille Nombre d'entrées + * @param x Vecteur de poids + */ +Neurone::Neurone(int n, std::vector * x,FonctionActivation::EnumFonctionActivation fct){ + w = x; + fonctionActivation.setFonctionActivation(fct); + this->n = n; +} + +/** + * Méthode de propagation en avant + * @method Neurone::fire + * @param in Vecteur d'entrées + * @param k Coefficient de sigmoid k + * @return Valeur d'activation + */ +double Neurone::fire(std::vector in, double k)const{ + return fw_activate(fw_sum(in),k); +} + +/** + * Méthode de somme des valeurs du vecteur + * @method Neurone::fw_sum + * @param x Vecteur + * @return Somme + */ +double Neurone::fw_sum(std::vector x)const{ + double res=0; + for(int i=0; i x,double o,double k, double mu){ + double sum = fw_sum(x); + double res = fw_activate(sum,k); + double derive = derive_activate(sum,k); + for(int i=0; i