gpt4 book ai didi

python - 在Tensorflow中,LSTMCell中状态元组(c,h)返回的 'output'和 'h'有什么区别?

转载 作者:行者123 更新时间:2023-11-30 08:53:45 28 4
gpt4 key购买 nike

我搜索了许多教程/博客/指南和官方 Tensorflow 文档来理解这一点。例如,请参见以下几行:

lstm = tf.nn.rnn_cell.LSTMCell(512)
output, state_tuple = lstm(current_input, last_state_tuple)

现在如果我解压状态,

last_cell_memory, last_hidden_state =  state_tuple

输出和last_hidden_​​state的尺寸完全相同[batch_size, 512]。两者可以互换使用吗?我的意思是,我可以这样做吗? :

last_state_tuple= last_cell_memory, output 

然后将last_state_tuple输入lstm?

最佳答案

Jacques 的答案是正确的,但它没有提到重要的一点:LSTM 层的状态几乎始终等于输出。当 LSTM 单元链很长并且并非所有输入序列都具有相同的长度(因此被填充)时,这种差异就变得很重要。这时你应该区分状态和输出。

请参阅 my answer on a similar question 中的可运行示例(它使用 BasicRNNCell,但使用 LSTMCell 会得到相同的结果)。

关于python - 在Tensorflow中,LSTMCell中状态元组(c,h)返回的 'output'和 'h'有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49093292/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com