首页 > 解决方案 > 训练具有可变数量特征的 Keras LSTM 模型

问题描述

我正在 Keras 中训练一个 seq-to-seq 自动编码器,我的输入是(num_examples, time_step, num_features). 问题是,num_features并非所有示例都相同,此外,我将来会获得更多未知num_feature大小的示例。

到目前为止,我的代码是:

    # model architecture
    inputs = Input(shape=data.shape[1:])

    encoded1 = LSTM(32, return_sequences=True)(inputs)
    encoded2 = LSTM(32)(encoded1)

    latent_space = Dense(encoding_size)(encoded2)

    decoded1 = RepeatVector(1)(latent_space)
    decoded2 = LSTM(encoding_size, return_sequences=True)(decoded1)

    sequence_autoencoder = Model(inputs, decoded2)

我试过:inputs = Input(shape=(1, None))但它会引发错误。关于我如何解决这个问题的任何想法?

标签: keraslstmrecurrent-neural-networkautoencoder

解决方案


在使用 lstm 时,可以通过在输入形状中将 None 设置为 timestep 来处理不同大小的输入。

inputs = Input(shape=(BATCH_SIZE,None,channels))

通过这种方式,您可以将可变大小的输入提供给 LSTM。


推荐阅读