1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
| load exempe.mat
size(X',1) % nb entrées
size(X',2) % nb d'observations des entrées
size(d',1) % nb de sorties
size(d',2) % nb d'observations des sorties
in_exemple = X';
out_exemple = d';
net = newff(in_exemple,out_exemple,10); % mise en place de l'architecture du réseau
size(net.LW{1}) % on retrouve le lien entre les dimensions des entrées (9
% ici) et le nombre de neurone dans la couche cachée (10 ici)
% le fait de ne pas retrouver les deux variables précédentes indique que tu
% as mal définies ton architecture.
size(net.LW{2,1}) % dimensions de la matrice de poids reliant la sortie à
% la couche cachée. On doit donc retrouver les nombres de sorties (2 ici)
% et le nombre de neurones dans la couche cachée (10 ici).
% une erreur aurait été visible si un des chiffres renvoyé par
% "size(net.blabla)" correspondait au nombre d'observations (nombre de
% colonne dans tes matrices d'entrées et de sorties.
% tu peux retrouver cette erreur si tu définies l'architecture comme ceci :
% net=newff(X,d,10);
% size(net.IW{1}) % tu as du 10 et du 13 mais pas le nombre d'entrées...
% size(net.LW{2,1} % tu as du 10 et du 13 mais le nombre de sorties...
net = train(net,in_exemple,out_exemple); % apprentissage de ton réseau
% maintenant qu'il est entrainé, tu peux récupérer les poids par les
% commandes suivantes :
poids_in = net.IW{1}
poids_out = net.LW{2,1}
% chez moi ça marche (enfin l'entrainement) car vu ton petit nombre
% d'observation, je doute de la convergence du réseau...
% il est donc bon de tester cette architecture en utilisant un nouveau jeu
% de données (entrées/sorties connues : in_test et out_test)
out_reseau = sim(net,in_test);
% puis regarder toi même l'erreur donnée par ton réseau en comparant
% out_reseau et out_test... |
Partager