32template<
class T,
class U>
class net
48 int *tar,
int *nli,
int **ori)
57 net(
const char *nom,
int nc,
int *couch )
58 {
pmc(nom,nc,couch); }
65 net(
const char *nom );
101 int no,
int fo,
int *tar,
int *nli,
int **ori);
114 virtual void add_neur(
const char *nom,
int typ,
int xx,
int yy,
int zz,
141 virtual int add_le(
int tar,
int org, U w);
152 virtual void pmc(
const char *nom,
int nc,
int *couch);
159 virtual int load(
const char *nom);
161 virtual int load( std::istream & fich );
166 virtual int save(
const char *nom)
const;
168 virtual int save( std::ostream & fich )
const;
208 virtual void learn(
int n, T dlt,
double eta);
212 {
int n;
if( (n=
get_link(ta))<0 )
return(0);
return(
_l[n].
nl()); }
224 const char *
nm()
const {
return(
_nm); }
285template<
class T,
class U>
289template<
class T,
class U>
Réseau de neurones : classe net.
net< T, U > operator+(const unit< T > &u)
Ajout d'un neurone.
virtual int add_link(int tar, int nli)
Ajoute une liaison.
virtual int nlink(int ta)
Nombre de liens.
virtual void init(const char *nom, int nu, int nl, int nac, int ni, int no, int fo, int *tar, int *nli, int **ori)
Initialisation du réseau.
int fo() const
Numéro de la 1ère unité de sortie.
int no() const
Nombre de sorties.
int _nac
Nombre d'arrivées de connexions.
net(const char *nom, int nc, int *couch)
Réseau à couches.
virtual void pmc(const char *nom, int nc, int *couch)
Initialise un Perceptron-Multi-Couches.
virtual int backprop(const pat< U > &pa, int nc, double eta, int flg=0, T *err=NULL)
Apprentissage.
virtual void aff() const
Affichage du contenu du réseau.
virtual int prop()
Propage les valeurs d'entrées (préalablement positionnées)
virtual int load(std::istream &fich)
Lecture dans un stream déja ouvert.
net< T, U > operator-(const unit< T > &u)
Suppression d'un neurone.
net< T, U > & operator*(const net< T, U > &le)
char _nm[20]
Nom du réseau.
unit< T > * u() const
Tableau des unités du réseau.
virtual T learn_p(int ta, T dlt, double eta)
Apprentissage des poids d'une liaison.
net< T, U > & operator^(const net< T, U > &le)
net< T, U > & operator/(const net< T, U > &le)
int nac() const
Nombre d'arrivées de connexion (neur_links)
virtual int bytesize() const
Calcule la taille du fichier de sauvegarde.
int _nl
Nombre de connexions.
virtual void af_out(int fl=1) const
Affiche les sorties du reseau.
int nu() const
Nombre d'unités.
int _nu
Nombre d'unités (de neurones)
const char * nm() const
Nom du réseau.
virtual int del_neur(int no)
Elimination d'un neurone.
virtual int renum(int org, int ta)
Réordonnancement du réseau.
neur_link< U > * l() const
Tableau des liaisons.
virtual void empty()
Vidange du réseau.
net< T, U > & operator=(const net< T, U > &n)
Copie.
virtual int prop(const pat< T > &pa, int n)
Fait fonctionner le réseau.
virtual int save(std::ostream &fich) const
Ecriture dans un stream déja ouvert.
virtual int get_neur(const unit< T > &u)
Renvoie le numéro d'un neurone.
virtual int del_link(int no)
Elimination d'une liaison.
int nl() const
Nombre total de liens élémentaires.
virtual void learn(int n, T dlt, double eta)
Apprentissage d'une liaison.
virtual int load(const char *nom)
Charge un réseau.
int _no
Nombre de sorties.
net(const char *nom)
Lit un réseau dans un fichier.
net< T, U > & operator-=(const unit< T > &n)
Suppression d'un neurone.
virtual int save(const char *nom) const
Sauve le réseau sur disque.
neur_link< U > * _l
Tableau des connexions.
unit< T > * _u
Tableau des neurones.
net(const net< T, U > &n)
Constructeur de copie.
virtual ~net()
Destructeur.
virtual int del_le(int tar, int org)
Elimine un lien élémentaire.
int ni() const
Nombre d'entrées.
net< T, U > & operator+=(const unit< T > &n)
Ajout d'un neurone.
virtual int add_le(int tar, int org, U w)
Ajout d'un lien élémentaire.
int _fo
Numéro de la 1ère sortie.
virtual void rand_w(U min, U max)
Initialisation des poids.
net(const char *nom, int nu, int nl, int nac, int ni, int no, int fo, int *tar, int *nli, int **ori)
Réseau initialisé.
virtual int get_link(int tar)
Recherche d'une liaison.
virtual void add_neur(const char *nom, int typ, int xx, int yy, int zz, T bia, T sor)
Ajout d'un neurone.
Connexion à un neurone : classe neur_link.
Base d'exemples : classe pat.
Unité : neurone de base, classe unit.
std::istream & operator>>(std::istream &fich, net< T, U > &res)
std::ostream & operator<<(std::ostream &fich, const net< T, U > &res)