我想在此paper中实现DA-RNN。研究论文的第3页讨论了编码器网络。具体来说,我想实现以下等式:
我想确认在上式中我在每个时间步都需要单元状态s
吗?通常,在RNN中,我们只需要上一个时间步的单元状态即可。因此,我的意思是,如果我们有一批5个时间戳,则在h
的所有时间步中都使用隐藏状态1 to 5
,而仅在第5个时间步中使用单元格状态s
(而不是对于所有时间步长)。
张量流中的out,s = dynamic_rnn
函数也为我提供了此输出,其中out
将具有在每个时间步长计算的隐藏状态,而s
将是c
和{{ 1}}。例如,如果我的输入的大小为h
,并且假设batch_size x max_timestep x num_features
,则max_timestep=5
和s.c
将从第5个时间步开始包含单元格状态和隐藏状态,而不是时间步长s.h
。但是,在本文中,一般的表示法是时间1,2,3,4
的单元状态s
。因此,如果我们要谈论5个时间步,则需要在时间步t-1
处的单元格状态s
,而我无法通过1,2,3,4
函数获得状态。
总结一下
dynamic_rnn
才能在图像中实现上述方程式? 更新:
此answer解决了我的问题。事实证明,没有直接函数可以在每个时间步获取单元状态,但是我们可以包装RNN单元,并将其作为tf中s
函数的输入。