【发布时间】:2019-12-20 14:44:18
【问题描述】:
我真的很困惑如何使用来自 keras 的 LSTM 来解决/构建我的任务:
所以我有一个sequence 或vectors。每个序列都属于某个输出(在我的例子中是一个文档)。
向量本身有 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