keras - 训练具有可变数量特征的 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))
但它会引发错误。关于我如何解决这个问题的任何想法?
解决方案
在使用 lstm 时,可以通过在输入形状中将 None 设置为 timestep 来处理不同大小的输入。
inputs = Input(shape=(BATCH_SIZE,None,channels))
通过这种方式,您可以将可变大小的输入提供给 LSTM。
推荐阅读
- c# - 更改 ContentControl.Content 将内容堆叠在一起
- node.js - 自定义 cookie 发送到浏览器但未存储
- android - 如何在单击时更改两个按钮(男性和女性)的状态
- python - 不同的 crc16 C 和 Python3?
- go - proto.Marshal 内存不足
- javascript - 为 WebGL 纹理加载图像但由于 CORS 而失败
- android - 高级搜索栏崩溃
- javascript - 在我的数组中推送许多对象会擦除数组中所有以前的对象(React with Hooks)
- php - 无论如何在谷歌浏览器中自动将维基百科链接更改为 wiki-zero?
- ruby-on-rails - 创建一个 simple_form,它将由邮件程序在 rails 中自动发送