首页 文章

如何在keras中堆叠多个lstm?

提问于
浏览
26

我正在使用深度学习库keras并尝试堆叠多个LSTM而没有运气 . 以下是我的代码

model = Sequential()
model.add(LSTM(100,input_shape =(time_steps,vector_size)))
model.add(LSTM(100))

上面的代码在第三行返回错误 Exception: Input 0 is incompatible with layer lstm_28: expected ndim=3, found ndim=2

输入X是一个形状的张量(100,250,50) . 我在tensorflow后端运行keras

1 回答

  • 48

    您需要将 return_sequences=True 添加到第一层,以使其输出张量具有 ndim=3 (即批量大小,时间步长,隐藏状态) .

    请参阅以下示例:

    # expected input data shape: (batch_size, timesteps, data_dim)
    model = Sequential()
    model.add(LSTM(32, return_sequences=True,
                   input_shape=(timesteps, data_dim)))  # returns a sequence of vectors of dimension 32
    model.add(LSTM(32, return_sequences=True))  # returns a sequence of vectors of dimension 32
    model.add(LSTM(32))  # return a single vector of dimension 32
    model.add(Dense(10, activation='softmax'))
    

    来自:https://keras.io/getting-started/sequential-model-guide/(搜索"stacked lstm")

相关问题