C# 神经网络中实例误差的计算

C# 神经网络中实例误差的计算,c#,neural-network,C#,Neural Network,我有一个有两个输出节点的神经网络,我正在用c语言为它编写反向传播算法。这就是我计算实例误差的方法 instanceErr += (double)((Math.Pow(error1[0], 2) + Math.Pow(error1[1], 2)) / 2); 这段代码在一个循环中,执行224次,因为我有224个实例。这是正确的方法吗? 然后,我像这样计算每个历元的误差 meanSqrE = (double) (instanceErr/224); 但在两个时代之后,它开始给我30次相同的错误

我有一个有两个输出节点的神经网络,我正在用c语言为它编写反向传播算法。这就是我计算实例误差的方法

 instanceErr += (double)((Math.Pow(error1[0], 2) + Math.Pow(error1[1], 2)) / 2);
这段代码在一个循环中,执行224次,因为我有224个实例。这是正确的方法吗? 然后,我像这样计算每个历元的误差

 meanSqrE = (double) (instanceErr/224);

但在两个时代之后,它开始给我30次相同的错误,然后它打印这个NaN。我不知道我哪里出了问题

30次,我的意思是在接下来的30个世纪里,N是Not数字的缩写。error1或instanceErr可能为null,这会导致错误。我知道当我们尝试将0除以0时,这不是一个数字,但我在代码中没有任何这样的东西。如果错误小于1,则将数字平方会变小。而将一个非常小的数字除以2将得到相当于0/0的值。你是在运行你自己的神经网络吗?有很多开源框架都有完整的反向传播实现,请参阅:了解更多信息。我知道它不能直接回答你的问题,但它可以帮你省去重新发明轮子的麻烦。