如何在 LSTM 变分自动编码器中将潜在向量传递给解码器



我正在尝试为文本编写自己的 LSTM 变分自动编码器,并且已经很好地了解了编码步骤的工作原理以及如何对潜在向量Z进行采样。现在的问题是我应该如何将Z传递给解码器。对于解码器的输入,我有一个开始标记<s>,它将隐藏状态保留h,并且解码器中 LSTM 单元的单元格状态c

我应该使初始状态都hc等于Z,只是其中之一,还是其他什么?

使用 RepeatVector,您可以重复潜在输出n次。然后,将其输入 LSTM。下面是一个最小示例:

 # latent_dim: int, latent z-layer shape. 
 decoder_input = Input(shape=(latent_dim,)) 
 _h_decoded = RepeatVector(timesteps)(decoder_input)
 decoder_h = LSTM(intermediate_dim, return_sequences=True)
 _h_decoded = decoder_h(_h_decoded)
 decoder_mean = LSTM(input_dim, return_sequences=True)
 _x_decoded_mean = decoder_mean(_h_decoded)
 decoder = Model(decoder_input, _x_decoded_mean)

在 Keras 文档中对此进行了明确解释。

相关内容

  • 没有找到相关文章

最新更新