2014-09-28 73 views
1

我写了一个代码来训练单一的神经元网络与德尔塔规则。另一个用于感知器,分类2类。 我训练他们在2000年的样本,他们工作得很好。现在测试一个神经网络 - 训练后

,我期待通过我在训练过程结束时获得了最后的权重对它们进行测试(与其他2000个样品),并在测试代码中使用它们如下:

function accuracy = test(data,weight1,weight2) 

xZero=1; 
wZero=0.1; 
counter=0; 

for(n=1:2000) 
    x1=data(n,1); 
    x2=data(n,2); 
    desired=data(n,3); 

    y=(xZero*wZero)+(x1*weight1)+(x2*weight2); 
    if(y==desired) 
     counter=counter+1; 
    end 

end 

但我得到计数​​器= 0,这意味着没有y值等于所需的值。 是我们如何测试网络或者我错过了什么?我试图在网上找到一个算法,或者从书本上找到如何测试但我不能。我们是否必须与期望的输出具有相同的确切输出,或者我们是否应该使用类似阈值的东西?

回答

0

有不同类型的神经网络,但在这种情况下,您的网络中似乎应该有两个输出y1和y2。训练神经网络后,可以得到每个测试样本的y1和y2值,然后计算y1和y2的最大值。最大值决定了样本的类别。