tensorflow - ValueError: 层 lstm 的输入 0 与层不兼容:预期 ndim=3,发现 ndim=4。收到的完整形状:(无、32、24、7)
问题描述
我仍在弄清楚如何解决这个错误......因为我必须将我的第一层输入形状修复为
input_shape=(BATCH_SIZE, N_PAST, N_FEATURES)
我在 LSTM 和 GRU 的任何错误上都收到错误
model = tf.keras.models.Sequential([
tf.keras.layers.LSTM(64, return_sequences=True, input_shape=(BATCH_SIZE,N_PAST, N_FEATURES)),
tf.keras.layers.Dense(N_FEATURES)
])
model.summary()
optimizer = tf.keras.optimizers.SGD(lr=1e-8, momentum=0.9)
model.compile(
loss="mse",
optimizer=optimizer,
metrics=["mae"]
)
model.fit(
train_set, validation_data=valid_set,validation_steps=100, epochs=100
)
解决方案
永远不需要给模型一个固定的 batch_size 维度值,tensorflow 将根据给定的数据形状动态地处理这个。
所以在模型的构建中:
tf.keras.layers.Dense(7, input_shape=(N_PAST, N_FEATURES), activation='relu')
执行 summary() 时,此层的输入形状应为 (None, N_PAST, N_FEATURES)
推荐阅读
- c# - 忽略整数?值为 0 时的属性
- c++ - 如何计算旋转椭圆点的切线?
- postgresql - 不确定如何在时间段之间获得空置单位
- fuzzywuzzy - 如何在模糊匹配熊猫重复数据删除单个数据帧中获取行索引
- search - NetSuite 销售团队搜索
- visual-studio-code - 将 VSCode 调试图标提取到 PNG 文件
- regex - 如何使用 sed/perl/awk 查找和替换模式字符串?
- excel - 如何更正 Excel VBA 中的不正确乘法(自动向下舍入/丢失小数)?
- logic - 根据特定逻辑在 Tableau 中计算日期
- python - 如何使用 python 中的 def 函数和条件语句打印 2 个连续的红色或绿色蜡烛