我试着用Java从头开始实现CNN。我没有使用任何使事情变得更困难的外部库。
我的CNN有以下结构:Input -> [ConvLayer, Pool, ReLU, FullyConnected] -> Output
这些层可以以几乎任何顺序彼此相加。除了ConvLayer之外,每个层都可以工作。向前传球很好,但是我被错误的后传和权值的更新所困扰。
我知道这是一种反核的向后卷积,但我就是不能让它起作用,如果有人能简单地解释什么值必须与什么值相乘,那就太好了:)
我的尝试可以在这里找到:CNN卷积层-反传播问题
我对任何帮助都很高兴。
你好,芬恩
发布于 2017-05-01 15:01:58
当我们向后传递特定层时,我们需要
事实上,卷积层中的权重更新与在完全连接层中所做的事情非常相似。如果在完全连通层中计算损失L,则可以通过L相对于y的部分计算卷积层的损失,其中y是卷积层的输出。然后梯度计算将与完全连接层的计算相同。
如果你喜欢更多的数学描述,请参考反向传播。
希望这能帮到你。
https://stackoverflow.com/questions/43700750
复制相似问题