Lilz
Lilz

Reputation: 4081

MATLAB neural networks

I'm using a simple XOR input and output data set in order to train a neural network before attempting anything harder but for some reason it won't work.

may someone please explain what I am doing wrong please? This is my 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);

THis is my error message:

??? Error using ==> network.train at 145 Targets are incorrectly sized for network. Matrix must have 2 columns.

Error in ==> smallNN at 11 net = train(net, t_input, t_output);

Upvotes: 0

Views: 1914

Answers (1)

Matteo De Felice
Matteo De Felice

Reputation: 1518

You must have your samples on columns and not rows (like all the NN software in the world do), so change the data sets creation lines in:

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]';

Now it works.

Upvotes: 1

Related Questions