0

我想实现一个像这样工作的模型:它有 3 个输入,例如 - 1,2,3,它给出 1 个输出 - 一个介于 0 到 1 之间的数字(包括 0 和 1)。该模型是一个前馈网络——首先,它“训练”——它得到输入和结果,然后,根据他的训练,它可以给出一个只给出输入的结果,例如:有一次他得到 1,2 ,3 和结果:0,他第二次得到 2,3,4,结果:0,第三次得到 3,4,5,结果:1. 第四次得到 4,5,6 但没有结果 - 所以基于根据他的知识和算法,他会给出一个结果,比如说:0.45。

我的问题是输入向量的大小和结果向量的大小必须相等,所以当我只需要 1 时,结果的向量必须包含 3 个元素 - 所以我让所有元素都相同,含义:它得到 [1 1 1] 或 [0 0 0] (我希望它不会破坏网络)。无论如何,这是我模型的代码——我实现得好吗?因为我不确定...

% x1 is the input in the 1st case, x2 is the input in the 2nd case...
% t1 is the result in the 1st case, t2 is the result in the 2nd case...
net=feedforwardnet(1);
x1=[1 2 3];
t1=[0 0 0];
x2=[2 3 4];
t2=[0 0 0];
x3=[3 4 5];
t3=[1 1 1];
x4=[4 5 6];
net=train(net,x1,t1);
net=train(net,x2,t2);
net=train(net,x3,t3);
t4=net(x4)
4

1 回答 1

1

不,它应该训练一次,多个案例应该只放入一个矩阵

the right program should be as follows:
x = [x1', x2', x3'];
t = [0 0 1];
net = train(net, x, t);
t4 = net(x4)
于 2013-09-22T07:11:57.980 回答