keras.layers.LSTM(units,stateful=False,unroll=False)
什么单位,有状态和展开在这里代表?
keras.layers.LSTM(units,stateful=False,unroll=False)
什么单位,有状态和展开在这里代表?
units:根据官方文档,它定义了输出维度。简而言之,将使用的 LSTM 单元的数量。
单位:正整数,输出空间的维度。
单元只不过是用于处理输入的 LSTM 单元。
stateful:
根据文档:
有状态的:布尔值(默认为 False)。如果为 True,则批次中索引 i 处每个样本的最后状态将用作下一批中索引 i 的样本的初始状态。
如果此参数设置为 False,则 LSTM 单元的状态或内存将在每个通过它的样本处重置。它遵循这种方式:
stateful=True这样,状态向量将用作第二个样本的初始状态。stateful=False是这样,新的状态向量将用于第二个样本。因此,内存应该从一个样本迁移到另一个样本是由stateful参数决定的。
unroll:
根据文档,
展开:布尔值(默认为 False)。如果为 True,则网络将展开,否则将使用符号循环。展开可以加速 RNN,尽管它往往更占用内存。展开仅适用于短序列。
它可以认为是:
RNN 一旦及时展开,就可以被视为非常深的前馈网络,其中所有层共享相同的权重。(深度学习,自然,2015 年)
你可以在这里阅读一篇优秀的文章。
展开将使 LSTM 成为具有共享权重的深度前馈网络。通过这个图你可以看到和理解。