2011-05-11 4 views
0

J'utilise un simple ensemble de données d'entrée et de sortie XOR pour former un réseau de neurones avant de tenter quoi que ce soit de plus difficile, mais pour une raison quelconque, cela ne fonctionnera pas.Réseaux de neurones MATLAB

quelqu'un peut-il s'il vous plaît expliquer ce que je fais mal s'il vous plaît? Voici mon code:

%user specified values 
hidden_neurons = 3; 
epochs = 10000; 

t_input = [1 1; 1 0; 0 1; 0 0]; 
t_output = [1; 0; 0; 1]; 
te_input = [1 1; 1 0; 0 1; 0 0]; 

net = newff(t_input, t_output, 1); 
net = init(net); 
net = train(net, t_input, t_output); 
net.trainParam.show = 50; 
net.trainParam.lr = 0.25; 
net.trainParam.epochs = epochs; 
net.trainParam.goal = 1e-5; 
net = train(net, t_input, t_output); 
out = sim(net, te_input); 

Ceci est mon message d'erreur:

??? Erreur lors de l'utilisation de ==> network.train à 145 Les cibles sont incorrectement dimensionnées pour le réseau . La matrice doit avoir 2 colonnes.

Erreur dans ==> smallNN à 11 net = train (net, t_input, t_output);

Répondre

1

Vous devez avoir vos échantillons sur des colonnes et pas de lignes (comme tous les logiciels NN dans le monde ne), afin de modifier les ensembles de données lignes de création dans:

t_input = [1 1; 1 0; 0 1; 0 0]'; 
t_output = [1; 0; 0; 1]'; 
te_input = [1 1; 1 0; 0 1; 0 0]'; 

Maintenant, il fonctionne.

Questions connexes