/*
C code library for neuron network training
Librairie de code C pour l'apprentissage d'un réseau de neurones
File : model0trn.h
*/
#ifndef model0_TRAIN_H
#define model0_TRAIN_H
#define code_toohighcost 1
#define code_dataaccessdenied 2
#define code_dvserror 3
#define code_reverseerror 4
#include "netraltype.h"
/* Enumeration of train end causes */
/* Enumeration des motifs de fin d'apprentissage */
enum ttrainend {teNone=0, teTarget, teEpoch, teAccuracy, teHighWeight, teError,
teUserDemand};
extern real* VData; /* Training Data /* Données d'apprentissage*/
extern real* VDataValid; /* Validation Data *//* Données de validsation */
extern real* VHII; /* Hii Table /*//* Table des Hii */
extern long DataCount; /* Number of training record *//* Nombre de données d'apprentissage */
extern long ValidDataCount; /* Number of Validayion record *//* Nombre de données de validation */
extern real CurCost; /* Current Training Cost *//* Coût d'apprentissage courant */
extern real GenCost[model0OUTPUTS]; /* Generalisation Cost Vector *//* Vecteur de coût de généralisation */
extern real TrainCost[model0OUTPUTS]; /* Coûts d'apprentissage par sorties */
extern real JacobRank[model0OUTPUTS]; /* Rang du Jacobien par sortie */
extern long WeightLimited; /* Limitation des poids */
#ifdef __cplusplus
extern "C" {
#endif
/*Module : model0Trn
Method : model0getcost
Visibility : Public
Arguments : long *code -> code d'erreur
Return : real
Description: calcul du coût sur l'ensemble d'apprentissage, avec les poids
par défaut. Les données d'apprentissage doivent avoir été enregistrées*/
real model0getcost(long*);
/*Module : model0Trn
Method : model0getcostw
Visibility : Public
Arguments : real *weights -> poids courants
int *code -> code d'erreur
Return : real
Description: calcul du coût sur l'ensemble d'apprentissage, avec les poids
fournis. Les données d'apprentissage doivent avoir été enregistrées*/
real model0getcostw(real*, long*);
/*Module : model0Trn
Method : model0GetData
Visibility : Public
Arguments : int Index -> indice de la donnée dans le tableau
real *DataLoc -> pointeur sur tableau de real. Le tableau
pointé doit porter les entrées puis les sorties.
Return : long -> 0 si OK, sinon code_dataaccessdenied
Description: Copie les données désignées dans le tableau de données*/
long model0getdata(long, real*);
/*Module : model0Trn
Method : model0getdatavalid
Visibility : Public
Arguments : long Index -> indice de la donnée dans le tableau
real *DataLoc -> pointeur sur tableau de real. Le tableau
pointé doit porter les entrées puis les sorties.
Return : long -> 0 si OK, sinon code_dataaccessdenied
Description: Copie les données désignées dans le tableau de données de
validation*/
long model0getdatavalid(long, real*);
/*Module : model0Trn
Method : model0GetGenCost
Visibility : Public
Arguments : real *Homogen -> homogénéité des Hii
long *code -> code d'erreur
Return : real -> le cout de généralisation.
Description: Calcule le Coût de généralisation et l'homogénéité.
Utilise les poids et la matrice de dispersion par défaut */
real model0getgencost(real*, long*);
/*Module : model0Trn
Method : model0GetGenCostw
Visibility : Public
Arguments : real *weights -> poids courants
real *ZMat -> matrice ZtZ inverse courante
real *Homogen -> homogénéité des Hii
long *code -> code d'erreur
Return : real -> le cout de généralisation.
Description: Calcule le Coût de généralisation et l'homogénéité.
Utilise les poids et la matrice de dispersion fournis */
real model0getgencostw(real*, real*, real*, long*);
/*Module : model0Trn
Method : model0getvalidcost
Visibility : Public
Arguments : long *code -> code d'erreur
Return : real
Description: calcul du coût sur l'ensemble de validation.
Utilise les poids par défaut. */
real model0getvalidcost(long*);
/*Module : model0Trn
Method : model0getvalidcostw
Visibility : Public
Arguments : real *weights -> poids courants
long *code -> code d'erreur
Return : real
Description: calcul du coût sur l'ensemble de validation.
Utilise les poids fournis.*/
real model0getvalidcostw(real*, long*);
/*Module : model0Trn
Method : model0Free;
Visibility : Public
Arguments :
Return : None
Description: procedure de libération de la mémoire allouée par model0Init
Cette procédure doit être appellée après toute utilisation de ce code */
void model0free(void);
/*Module : model0Trn
Method : model0Init
Visibility : Public
Arguments : long ADataCount -> Nombre d'exemples de l'ensemble d'apprentissage
long AValidDataCount -> Nombre d'exemples de l'ensemble de validation
real *AVData -> tableau des données d'apprentissage
real *AVDataValid -> tableau des données de validation
Return : None
Description: procédure d'initialisation. Le nombre de données d'apprentissage
est fixé par ADataCount, et le nombre de donné"es de validation par
AValidDataCount.
AVData est un pointeur sur le tableau de données d'apprentisage.
AVDataValid est un pointeur sur le tableau de données de validation.
Si AVData est non nul, le programme pointe VData sur le tableau fourni
crée un tableau interne de données
Cette procédure doit être appellée avant toute autre utilisation de ce code */
long model0init(long, long, real*, real*);
/*Module : model0Trn
Method : model0iniweights
Visibility : Public
Arguments : env: real -> le paramètre d'initialisation
Return : None
Description: Initialise les poids par défaut par un valeur aléatoire de densité
de probabilité uniforme entre -env et env.
note : Cette méthode d'initialisation utilise le générateur de nombre aléatoire
de l'implémentation utilisée. */
void model0iniweights(real);
/*Module : model0Trn
Method : model0iniweightsw
Visibility : Public
Arguments : real *weights -> les pids courants à initialiser
env: real -> le paramètre d'initialisation
Return : None
Description: Initialise les poids par un valeur aléatoire de densité de
probabilité uniforme entre -env et env.
note : Cette méthode d'initialisation utilise le générateur de nombre aléatoire
de l'implémentation utilisée. */
void model0iniweightsw(real*, real);
/*Module : model0Trn
Method : model0setleverages
Visibility : Public
Arguments : long *code -> code d'erreur
Return : real -> le coût de généralisation
Description: Calcule le Jacobien, la matrice (ZtZ)Inv, le rang du Jacobien,
puis les leviers. Utilise les poids par défaut, et renseigne la matrice
de dispersion par défaut.*/
real model0setleverages(long *code);
/*Module : model0Trn
Method : model0setleveragesw
Visibility : Public
Arguments : real *weights -> les poids courants
real *ZMat -> la matrice ZtZ inverse à calculer
long *code -> code d'erreur
Return : real -> le coût de généralisation
Description: Calcule le Jacobien, la matrice (ZtZ)Inv, le rang du Jacobien,
puis les leviers. */
real model0setleveragesw(real*, real*, long*);
/*Module : model0Trn
Method : model0trainw
Visibility : Public
Arguments : real *weights -> les poids courants
long *Nb -> nombre d'époques remandées/ réalisées
long *TrainEnd -> Motif de l'arrêt d'apprentisage.
real *Cost -> valeur du coût en fin d'apprentisage.
Return : 0 si Ok, sinon, code d'erreur.
Description: Lancement d'un apprentissage avec les pids fournis. Le nombre
d'époques demandées est Nb. En retour, Nb porte le nombre d'époques effectivement
réalisées. Le motif de l'arret est porté par la variable TrainEnd. */
long model0trainw(real*, long*, long*, real*);
/*Module : model0Trn
Method : model0trainw
Visibility : Public
Arguments : long *Nb -> nombre d'époques remandées/ réalisées
long *TrainEnd -> Motif de l'arrêt d'apprentisage.
real *Cost -> valeur du coût en fin d'apprentisage.
Return : 0 si Ok, sinon, code d'erreur.
Description: Lancement d'un apprentissage avec les poids par défaut. Le nombre
d'époques demandées est Nb. En retour, Nb porte le nombre d'époques effectivement
réalisées. Le motif de l'arret est porté par la variable TrainEnd. */
long model0train(long*, long*, real*);
/*Module : model0Trn
Method : model0trainingstep
Visibility : Public
Arguments : real* weights -> les poids courants
long* fini -> vrai: apprentissage terminé
long* code -> code d'erreur
Return : long -> la valeur de *fini */
long model0trainingstep(real *, long, long*, long*, long*);
/*Module : model0Trn
Method : model0gethii
Visibility : Public
Arguments : long index -> indice de l'exemple dont on veut le levier
Return : Retourne le levier de l'exemple désigné. */
real model0gethii(long);
#ifdef __cplusplus
};
#endif
#endif
NETRAL - Neuro Code 6