2

我正在尝试关注 Kalchbrenner 等人。2014(http://nal.co/papers/Kalchbrenner_DCNN_ACL14)(基本上是过去 2 年将 CNN 应用于 NLP 任务的大部分论文)并实现了他们描述的 CNN 模型。不幸的是,虽然正确地进行了前向传递,但似乎我对渐变有问题。

我正在做的是输入与前向传递中每行、每核、每输入的 W 的完全卷积(未旋转,因此它实际上是一种相关性)。然后,对于 Wrt W 的梯度,输入与每行、每个内核、每个输入的前一个 delta 的有效卷积(同样,未旋转)。最后,对于 wrt x 的梯度,另一个有效卷积是渗透增量与 W,再次,每行,每核,每输入(无旋转)。

这将返回正确的大小和维度,但连接层时梯度检查确实关闭。当测试单个卷积层时,结果是正确的,当连接 2 个卷积层时 - 也是正确的,但是,当添加 MLP、池化等时,它开始看起来很糟糕。所有其他类型的层也分别进行了测试,它们也是正确的,因此,我假设问题从计算 grad 开始。wrt W_conv。

有没有人有类似实现的想法或有用的链接?

4

0 回答 0