Jas*_*son 9 python arguments output lstm keras
我查看了 LSTM 层的 Keras 文档,有关 RNN 参数的信息如下:
keras.layers.LSTM(units, return_state=True)
Run Code Online (Sandbox Code Playgroud)
参数:
return_state: 布尔值。除了输出之外,是否还返回最后一个状态。
输出形状
if return_state:张量列表。第一个张量是输出。剩下的张量是最后的状态,每个状态都有形状 (batch_size, units)
这就是关于 RNN 的 return_state 的所有信息。作为初学者,真的很难理解它到底是什么意思,剩下的张量是最后的状态,每个状态都有形状(batch_size,单位),不是吗?
我知道有细胞状态 c 和隐藏状态 a 将传递到下一个时间步。
但是当我做在线课程的编程练习时,我遇到了这个问题。波纹管是作业给出的提示。但我不明白这三个输出是什么意思。
from keras.layers import LSTM
LSTM_cell = LSTM(n_a, return_state = True)
a, _, c = LSTM_cell(input_x, initial_state=[a, c])
Run Code Online (Sandbox Code Playgroud)
有人说,他们分别是(https://machinelearningmastery.com/return-sequences-and-return-states-for-lstms-in-keras/):
1 最后一个时间步长的 LSTM 隐藏状态输出。
2 最后一个时间步长的 LSTM 隐藏状态输出(再次)。
3 最后一个时间步长的 LSTM 单元状态。
我总是将输出 a 作为 LSTM 的隐藏状态输出,而 c 作为单元状态输出。但是这个人说第一个输出是lstm输出,而第二个是隐藏状态输出,这与在线课程指令给出的提示不同(因为提示使用第一个输出作为下一个时间步的隐藏状态输出)。
谁能告诉我更多关于这方面的信息?
对于更一般的问题,比如在这种情况下,Keras 没有提供初学者友好的可理解文档或示例,如何更有效地学习 Keras?
考虑一下如何开始 LSTM 的迭代。你有一个隐藏状态c,一个输入x,但你还需要一个所谓的先前输出h,它与 相连x。因此,LSTM 有两个需要初始化的隐藏张量:c和h。Nowh恰好是前一个状态的输出,这就是为什么您将它作为输入与 一起传递c。当您设置 时return_state=True,c和h都会返回。因此,您将与输出一起收到 3 个张量。
| 归档时间: |
|
| 查看次数: |
3201 次 |
| 最近记录: |