我正在使用简单的XOR输入和输出数据集来训练神经网络,然后再尝试任何更难的东西,但由于某种原因它不起作用。
有人可以解释一下我做错了吗? 这是我的代码:
%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);
这是我的错误信息:
???使用==>时出错145个目标的network.train大小不正确 网络。 Matrix必须有2列。
==>中的错误smallNN at 11 net = train(net,t_input,t_output);
答案 0 :(得分:1)
您必须将样本放在列而不是行上(就像世界上所有NN软件一样),因此请更改数据集创建行:
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]';
现在它有效。