使用可变数量的特征训练 Keras LSTM 模型
Train Keras LSTM model with a variable number of features
我正在 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))
但它抛出错误。关于我如何解决这个问题有什么想法吗?
在使用 lstm 时,可以通过将 None 设置为输入形状中的时间步来处理输入的可变大小。
inputs = Input(shape=(BATCH_SIZE,None,channels))
通过这种方式,您可以将可变大小的输入馈送到 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))
但它抛出错误。关于我如何解决这个问题有什么想法吗?
在使用 lstm 时,可以通过将 None 设置为输入形状中的时间步来处理输入的可变大小。
inputs = Input(shape=(BATCH_SIZE,None,channels))
通过这种方式,您可以将可变大小的输入馈送到 LSTM。