lstm层初始状态在seq2seq编码器中的作用

The role of initial state of lstm layer in seq2seq encoder

我正在尝试按照本指南实施 seq2seq 机器翻译模型:https://www.tensorflow.org/tutorials/text/nmt_with_attention

教程的 Encoder 有一个 initialize_hidden_state() 函数,用于生成全 0 作为编码器的初始状态。但是我对为什么这是必要的感到有点困惑。据我所知,只有在调用 encoder 时(在 train_step 和求值中),它们是用 initialize_hidden_state() 函数初始化的。我的问题是 1.) 这个初始状态的目的是什么? Keras 层不会自动初始化 LSTM 状态吗?和 2.) 如果总是使用 initialize_hidden_state() 生成的初始状态调用编码器,为什么不总是用所有 0 个隐藏状态初始化 encoder

你完全正确。示例中的代码有点误导。 LSTM 单元自动用零初始化。您可以删除 initialize_hidden_state() 函数。