我正在尝试了解为时间序列预测开发的模型。它使用一个 Con1D 层和两个 LSTM 层,然后是一个密集层。我的问题是,它应该Flatten() 在 LSTM 和 Denser 层之间使用吗?在我看来,输出应该只有一个值,形状为(None, 1),可以通过Flatten()在 LSTM 和 Dense 层之间使用来实现。没有Flatten(),输出形状将为(None, 30, 1)。或者,我可以从第二个 LSTM 层中删除return_sequences=True,我认为这与Flatten(). 哪种方式更合适?它们会影响损失吗?这是模型。
model = tf.keras.models.Sequential([
tf.keras.layers.Conv1D(filters=32, kernel_size=3, strides=1, padding="causal", activation="relu", input_shape=(30 ,1)),
tf.keras.layers.LSTM(32, return_sequences=True),
tf.keras.layers.LSTM(32, return_sequences=True),
# tf.keras.layers.Flatten(),
tf.keras.layers.Dense(1),
])
这是没有的模型摘要Flatten()
Model: "sequential"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
conv1d (Conv1D) (None, 30, 32) 128
_________________________________________________________________
lstm (LSTM) (None, 30, 32) 8320
_________________________________________________________________
lstm_1 (LSTM) (None, 30, 32) 8320
_________________________________________________________________
dense (Dense) (None, 30, 1) 33
=================================================================
Total params: 16,801
Trainable params: 16,801
Non-trainable params: 0
_________________________________________________________________
DIEA
holdtom
相关分类