我想知道如何在Keras下工作LSTM。
我们举一个例子。 我的句子长度最多为3个字。 示例:'你好吗' 我在len 4的向量中向量化每个单词。所以我将有一个形状(3,4) 现在,我想用lstm来做翻译。 (只是一个例子)
import ...
import ...
def function(parameter):
....
根据Keras的说法,我的输出形状为(3,1)。
model = Sequential()
model.add(LSTM(1, input_shape=(3,4), return_sequences=True))
model.summary()
这是我不明白的。
LSTM的每个单位(使用return_sequences = True来获得每个状态的所有输出)应该给我一个形状向量(时间步长,x) 在这种情况下,时间步长是3,而x是我的单词矢量的大小(在这种情况下,4)
那么,为什么我的输出形状为(3,1)? 我到处搜索,但无法弄清楚。
答案 0 :(得分:1)
您对LSTM应该返回的内容的解释是不对的。输出维度不需要与输入维度匹配。具体来说,keras.layers.LSTM的第一个参数对应于输出空间的维度,并且您将其设置为1.
换句话说,设置:
model.add(LSTM(k, input_shape=(3,4), return_sequences=True))
将导致(None, 3, k)
输出形状。