我正在开发另一个深度学习库,目前正致力于传统卷积层的反向传播。对于每个卷积层,用户可以提供以下参数:
我想要的是为这部分编写单元测试,因为它非常复杂且容易出错。但是我自己很难想出一个数字例子,特别是我可以100%信任的例子。即使我这样做,我也绝不会说服某人通过手工制作矩阵旋转和卷积来检查它...我也没有运气搜索一个。但也许在谷歌搜索时,有人在这里比我好!
我特意寻找的是一个例子,给定来自下一层的渐变,以及当前的权重和渐变,我们得到该层必须产生的渐变(其激活和权重)。当然,上面提到的图层参数将在我的测试中进行硬编码。
类似的东西:
activationGradients = [... numbers here ...]
weights = [... numbers here...]
biases = [... numbers here ...]
then
activationGradientsBackward = [... numbers here ...]
weightGradients = [... numbers here ...]
biasGradients = [... numbers here ...]
然后我可以写下这样的内容:
assert agb, wg, bg == backprop(ag, w, b)
我已经阅读了很多关于描述网络的方程式的资源,并且尽可能地实现了它们。但是,我需要在每个步骤中断言正确性。互联网上有这样的数字例子吗?
作为一个例子,我发现this post提供了我正在寻找的东西,但是对于前馈网。 CNN需要相同的内容。