【发布时间】:2021-06-12 13:31:33
【问题描述】:
我使用以下代码创建了一个 LSTM 模型:
model = tensorflow1.keras.Sequential()
model.add(tensorflow1.keras.layers.LSTM(128, input_shape=(720, 4), return_sequences=True))
model.add(tensorflow1.keras.layers.LeakyReLU(alpha=0.5))
model.add(tensorflow1.keras.layers.LSTM(128, return_sequences=True))
model.add(tensorflow1.keras.layers.LeakyReLU(alpha=0.5))
model.add(tensorflow1.keras.layers.Dropout(0.3))
model.add(tensorflow1.keras.layers.LSTM(64, return_sequences=False))
model.add(tensorflow1.keras.layers.Dropout(0.3))
model.add(tensorflow1.keras.layers.Dense(1))
对于代码model.add(tf.keras.layers.LSTM(128, input_shape=(720,4), return_sequences=True)),在我的理解中,代码会有128个LSTM输出单元,一个输入720 个时间步长和 4 个特征的形状。 根据 tensorflow keras 文档,单位是指“输出空间的维度”。 (https://www.tensorflow.org/api_docs/python/tf/keras/layers/LSTM)
我的问题是:在 720 个单元格中,作为输出单元的 128 个单元格中的哪一个会被选为输出单元格? tensorflow如何选择选择哪些单元格作为输出?
【问题讨论】:
-
能否给出完整的型号代码?因为要了解您的问题,需要更多详细信息。但我认为 LSTM 可以返回整个隐藏状态序列。检查此blog from machine learning mastery。我认为它解决了您的疑问。
-
这是一个常见的误解,只有 128 个单元,而不是 720 个。每个单元都与输入完全连接。所以只有 128 个输出,而不是 720 个。TensorFlow 在这里没有选择任何东西。
标签: python tensorflow keras lstm