LSTM 单元如何合并空间或顺序信息?
How do LSTM units incorporated spatial or sequential information?
据我了解,LSTM 单元按顺序链接,每个单元都有一个输出,每个 LSTM 单元将输出传递给链中的下一个 LSTM 单元。
但是,你不是把整个输入都放在每个 LSTM 单元中吗?我看不出这条链如何反映顺序顺序很重要的数据结构。
谁能解释一下我哪里出错了?我对在 keras 中实现的 lstm 版本特别感兴趣,但非常欢迎每个答案!
不是,LSTM单元都是并行的。
序列仅存在于数据本身中,当您将一个维度分离为他们所谓的时间步长。传递给 LSTM 的数据形状为(批量大小、时间步长、数据大小)。
序列发生在 "time steps",但所有单元并行工作。
即使只有一个单元的 LSTM 仍然可以按时间步长顺序工作。
LSTM 发生的事情是它们有一个 "state"。它是一个内部矩阵,就像它的内存一样。在每个序列步骤中,有 "gates"(其他矩阵)根据步骤输入决定该步骤是否会改变状态以及改变多少。还有 "forget gates",决定旧状态是保留还是遗忘。
在 keras 中,您可以将属性 return_sequences
设置为 true 或 false。
如果为true,结果将携带每个时间步的结果。
如果为false,则只输出最终结果。
在这两种情况下,单位都只是结果的 "size"。 (与密集层中的单元或卷积层中的过滤器非常相似,它们更强大,更多功能,但不是更多步骤)。
带 return_sequences=False
的输出将只有大小单位:(Batch Size, Units)
return_sequences=True
的输出将保持时间步长:(Batch Size, Time Steps, Units)
据我了解,LSTM 单元按顺序链接,每个单元都有一个输出,每个 LSTM 单元将输出传递给链中的下一个 LSTM 单元。
但是,你不是把整个输入都放在每个 LSTM 单元中吗?我看不出这条链如何反映顺序顺序很重要的数据结构。
谁能解释一下我哪里出错了?我对在 keras 中实现的 lstm 版本特别感兴趣,但非常欢迎每个答案!
不是,LSTM单元都是并行的。
序列仅存在于数据本身中,当您将一个维度分离为他们所谓的时间步长。传递给 LSTM 的数据形状为(批量大小、时间步长、数据大小)。
序列发生在 "time steps",但所有单元并行工作。
即使只有一个单元的 LSTM 仍然可以按时间步长顺序工作。
LSTM 发生的事情是它们有一个 "state"。它是一个内部矩阵,就像它的内存一样。在每个序列步骤中,有 "gates"(其他矩阵)根据步骤输入决定该步骤是否会改变状态以及改变多少。还有 "forget gates",决定旧状态是保留还是遗忘。
在 keras 中,您可以将属性 return_sequences
设置为 true 或 false。
如果为true,结果将携带每个时间步的结果。
如果为false,则只输出最终结果。
在这两种情况下,单位都只是结果的 "size"。 (与密集层中的单元或卷积层中的过滤器非常相似,它们更强大,更多功能,但不是更多步骤)。
带 return_sequences=False
的输出将只有大小单位:(Batch Size, Units)
return_sequences=True
的输出将保持时间步长:(Batch Size, Time Steps, Units)