【问题标题】:LSTM for sequence to output in Keras用于在 Keras 中输出的序列的 LSTM
【发布时间】:2019-12-20 14:44:18
【问题描述】:

我真的很困惑如何使用来自 keras 的 LSTM 来解决/构建我的任务:

所以我有一个sequencevectors。每个序列都属于某个输出(在我的例子中是一个文档)。

向量本身有 500 个特征长(它们代表一个句子)。

序列(文档中有多少个句子)会有所不同。所以我假设序列需要被填充,所以每个序列都一样长,例如假设让每 200 个向量变长。

现在,由于每个 sequence 属于某个输出/文档 (1 - 10.000),我该如何构建我的任务?

Keras将输入作为(#samples, time_steps, input_dim);所以我想它一定是(#documents, #sentences, #features_of_each_sentece) - 在我的情况下:(10.000, 200, 500)

正确吗?

那么我该如何训练我的模型,以预测哪个句子最有可能属于哪个文档?

我的输出向量是否为第一个文档 [0, 1, ..] 秒等进行了单热编码 [1, 0, ...]?或者我的输出向量只是[1, 1, 1, ...., 2, 2, 2,...],所以我只有一个包含哪个序列属于哪个文档的输出向量?

我真的很困惑..最后我想取最后一层来为每个文档提供一个矢量表示。

所以它看起来像:

会不会像(?):

model = Sequential()
model.add(LSTM(50, input_shape=(10000,200,500)))
model.add(Dense(3))
model.add(Activation('softmax'))
model.compile(loss='categorial_crossentropy',opitimizer=some_optimizer)

【问题讨论】:

    标签: python keras sequence lstm


    【解决方案1】:

    如果模型的第一层是循环层,则不必指定长度。然后,您可以使用掩码来处理不同的序列大小。 有关 Keras 循环层(包括 LSTM)的更多信息,请查看the documentation 有关 LSTM 的简单示例,您可以查看 here

    【讨论】:

      猜你喜欢
      • 2019-12-03
      • 2019-04-14
      • 2019-01-04
      • 2018-06-25
      • 2018-06-30
      • 1970-01-01
      • 2018-07-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多