keras 中的因果填充

Posted

技术标签:

【中文标题】keras 中的因果填充【英文标题】:Causal padding in keras 【发布时间】:2019-03-05 20:17:33 【问题描述】:

有人能解释一下 Keras 中“因果”填充背后的直觉吗?有没有可以使用的特定应用程序?

keras 手册说这种类型的填充会导致空洞卷积。 “扩张”卷积到底是什么意思?

【问题讨论】:

【参考方案1】:

这是关于什么是“因果”填充的非常简洁的解释:

Conv1D 允许我们指定的一件事是 padding="causal"。这只是在前面用零填充层的输入,以便我们还可以预测帧中早期时间步的值:

膨胀只是意味着跳过节点。不像 strides 告诉你下一步在哪里应用内核,dilation 告诉你如何传播你的内核。从某种意义上说,相当于上一层的一个stride。

在上图中,如果较低层的步幅为 2,我们将跳过 (2,3,4,5),这将得到相同的结果。

图片来源:Kilian Batzner,Convolutions in Autoregressive Neural Networks

【讨论】:

【参考方案2】:

即卷积类型,t时刻的输出只取决于前面的时间步长(小于t)。在获取 Conv 输出时,我们不会考虑未来的时间步长。请检查此 Wavenet 纸 gif enter image description here

【讨论】:

以上是关于keras 中的因果填充的主要内容,如果未能解决你的问题,请参考以下文章

Keras嵌入层:将零填充值保持为零

如何在 Conv2D 层中使用 keras 指定填充?

keras.layers.Conv2D的默认内核大小,零填充和步幅是什么?

如何在 keras conv 层中进行零填充?

如何在 Keras 的 BLSTM 中屏蔽填充?

连接 Keras 中的屏蔽输入