【发布时间】:2021-10-08 09:44:32
【问题描述】:
我仍在研究如何解决此错误...
因为我必须将我的第一层输入形状固定为
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。
-
这是一道测试题。它在 cmets 中有这样的语句:~~“无论你的第一层是什么,输入形状都将是 (BATCH_SIZE, N_PAST = 24, N_FEATURES = 7) 模型的输出形状必须是 (BATCH_SIZE, N_FUTURE = 24, N_FEATURES = 7). 确保最后的密集层有 N_FEATURES = 7 个神经元,因为模型预测了 7 个特征。"~~ 我理解错了吗?
-
实际上批量维度是由模型自动考虑的。您无需指定它。模型本身将使用
None作为第一维添加它。在 input_shape 你只需要指定其他维度。 -
当我更改 input_shape=(N_PAST, N_FEATURES), tensorflow.python.framework.errors_impl.InvalidArgumentError: 操作需要一个包含 24 个元素的列表但得到一个包含 47 个元素的列表时,我遇到了另一个错误。
-
显然 tt 预计 N_PAST 为 24,但它得到了 47。
标签: tensorflow keras neural-network conv-neural-network lstm