训练具有多种功能的Keras LSTM模型

时间:2018-06-25 09:31:38

标签: keras lstm recurrent-neural-network autoencoder

我正在Keras中训练一个序列到序列的自动编码器,我的输入是(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)),但抛出错误。关于如何解决这个问题有什么想法吗?

1 个答案:

答案 0 :(得分:1)

在使用lstm时,可以通过将None设置为输入形状的时间步长来处理输入的可变大小。

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

通过这种方式,您可以将可变大小的输入馈送到LSTM。