C# 单元测试反向传播

C# 单元测试反向传播,c#,unit-testing,neural-network,C#,Unit Testing,Neural Network,我正在为反向传播编写类库。我没有遵循TDD的原则,但我仍然想为它编写一些单元测试。我的问题是我不知道该如何测试它。 我唯一的猜测是手动计算权重的增量,以便与结果进行比较,但这似乎不正确,或者是这样吗 所以:我会在一个场景中计算Excel中的增量,然后测试该场景。这是有效的测试吗 谢谢。您可以从解决一个简单的测试问题开始,该问题的结果很容易验证,如中所述的XOR问题。您可以从解决一个简单的测试问题开始,该问题的结果很容易验证,如中所述的XOR问题。测试反向传播算法非常重要,因为它非常重要它们通常会

我正在为反向传播编写类库。我没有遵循TDD的原则,但我仍然想为它编写一些单元测试。我的问题是我不知道该如何测试它。 我唯一的猜测是手动计算权重的增量,以便与结果进行比较,但这似乎不正确,或者是这样吗

所以:我会在一个场景中计算Excel中的增量,然后测试该场景。这是有效的测试吗


谢谢。

您可以从解决一个简单的测试问题开始,该问题的结果很容易验证,如中所述的XOR问题。

您可以从解决一个简单的测试问题开始,该问题的结果很容易验证,如中所述的XOR问题。

测试反向传播算法非常重要,因为它非常重要它们通常会有细微的bug。例如,梯度已经关闭,但距离足够近,网络仍然可以进行某种程度的学习


你只需要使用有限差分法。对于每个参数(或随机参数或其他任何参数),您向其添加一个非常小的值。看看误差变化的大小除以你改变参数的数量,看看这是否与你的梯度相匹配。

测试反向传播算法非常重要,因为它们通常会有细微的错误。例如,梯度已经关闭,但距离足够近,网络仍然可以进行某种程度的学习


你只需要使用有限差分法。对于每个参数(或随机参数或其他任何参数),您向其添加一个非常小的值。查看误差变化量除以您更改参数的量,然后查看是否与梯度匹配。

您应该从一个非常简单的测试问题开始,并给出已知的结果。例如,这里描述的XOR问题。您应该从一个已知结果的非常简单的测试问题开始。例如,这里描述的XOR问题。我也想过,但我不认为如果网络能够解决XOR问题,那就意味着计算是正确的,或者你认为这足够了吗?至少它会为你指明一些好的方向。其想法是获得初始基线结果。这会让你知道你做的是否正确。我也想过,但我不认为如果网络能够解决XOR问题,那就意味着计算是正确的,或者你认为这足够了吗?至少它会给你指明一些好的方向。其想法是获得初始基线结果。这将给出一个关于你是否做得对的想法。谢谢,这似乎与我搜索的内容相似。谢谢,这似乎与我搜索的内容相似。