Keras中双向有状态RNN如何工作?

6
在Keras中,用于RNN的包装器还支持。我并不真正理解它应该如何工作:
在状态保持单向模型中,批次的状态会传递到下一批次。我猜在双向模型的前向层中也是这样工作的。
但是,反向层从哪里得到它的状态呢?如果我正确理解了一切,那么它应该从“下一个”批次接收状态。但明显,“下一个”批次尚未计算,那它是如何工作的?
1个回答

2

一个双向层可以这样理解:

forward = Recurrent(..)(input)
backward = Recurrent(..., reverse_input=True)(input)
output = merge([forward, backward], ...)

因此 - 你可以看到 - 你正在失去时间方向。你正在从开头和结尾分析输入。在这种情况下 - 设置stateful=True只是根据双向分支的方向(forwardforwardbackwardbackward)从先前的样本中获取其起始状态。

这会使你的模型失去解释 - 来自并发批次的样本可能被解释为一个被分成批次的紧凑序列。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接