【问题标题】:How can I build an LSTM network for two dimensional data?如何为二维数据构建 LSTM 网络?
【发布时间】:2019-02-11 05:44:36
【问题描述】:

我看到 Keras 中的 LSTM 接受 (batch_size, timesteps, data_dim) 作为输入形状。但我想知道是否有一种简单的方法可以将这些扩展到 4 个维度? 例如,我们如何将 lstm 应用于具有 64 x 64 大小的图像的移动 MNIST 数据集?

【问题讨论】:

    标签: tensorflow keras lstm recurrent-neural-network


    【解决方案1】:

    您可以使用 CNN 模型提取图像的特征,然后再将其输入 LSTM。

    # define CNN model
    cnn = Sequential()
    cnn.add(Conv2D(...))
    cnn.add(MaxPooling2D(...))
    cnn.add(Flatten())
    
    # define LSTM model
    model = Sequential()
    model.add(TimeDistributed(cnn, ...))
    model.add(LSTM(..))
    model.add(Dense(...))
    

    【讨论】:

    • 如果您需要资源来解释我们为什么使用TimeDistributed 包装层:machinelearningmastery.com/…
    • @AnnaKrogager,有没有一种方法可以让我不必使用卷积?基本上,我想要一个网络,每个位置都有一个 LSTM。
    • 我不确定你的意思,但也许你可以使用 TimeDistributed LSTM?这会将 LSTM 应用于数据的每个时间切片(沿轴 1)。只要确保你首先以正确的方式排列了你的轴。但是,这对图像数据没有多大意义。
    猜你喜欢
    • 2018-07-06
    • 1970-01-01
    • 1970-01-01
    • 2017-07-09
    • 1970-01-01
    • 2021-02-10
    • 2016-04-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多