【发布时间】:2019-12-24 16:12:17
【问题描述】:
我阅读了以下博客文章并尝试通过 Keras 实现它: https://andriymulyar.com/blog/bert-document-classification
现在,我对 Keras 很陌生,我不明白如何使用“seq2seq 神经网络”将一系列子块(句子)压缩成全局上下文向量(文档向量)。 -通过 LSTM ..
例如:我有 10 个文档,每个文档包含 100 个句子,每个句子由一个 1x500 向量表示。 所以数组看起来像这样:
X = np.array(Matrix).reshape(10, 100, 500) # reshape to 10 documents with 100 sequence of 500 features
所以我知道我想训练我的网络并采用最后一个隐藏层,因为这个隐藏层代表我的文档向量/全局上下文向量。
然而,对我来说最困难的部分是想象输出向量.. 我只是枚举我的文档
y = [1,2,3,4,5,6,7,8,9,10]
y = np.array(y)
还是我必须使用 one-hot-encoded 输出向量:
yy = to_categorical(y)
甚至是别的什么......?
据我了解,最终模型应如下所示:
model = Sequential()
model.add(LSTM(50, input_shape=(100,500)))
model.add(Dense(1))
model.compile(loss='categorical_crossentropy',optimizer='rmsprop')
model.fit(X, yy, epochs=100, validation_split=0.2, verbose=1)
【问题讨论】:
标签: python keras nltk lstm seq2seq