1 回答
TA贡献1804条经验 获得超2个赞
上面的示例返回 shape (1, 480, 16)。当您设置 时return_sequences=True,Keras 将返回时间步维度(您的“中间”维度),因此如果您的输入有 480 个时间步,它将输出 480 个时间步。最后一个维度将是最后一层中的单元数。
import numpy as np
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import *
model = Sequential()
model.add(LSTM(32, input_shape=(480, 16), return_sequences = True))
model.add(Dense(16))
model.compile(loss='mse', optimizer='adam')
batch = np.zeros((90, 480, 16))
input_to_predict = batch[[0]]
model.predict(input_to_predict).shape
array([[[0., 0., 0., ..., 0., 0., 0.],
[0., 0., 0., ..., 0., 0., 0.],
[0., 0., 0., ..., 0., 0., 0.],
...,
[0., 0., 0., ..., 0., 0., 0.],
[0., 0., 0., ..., 0., 0., 0.],
[0., 0., 0., ..., 0., 0., 0.]]], dtype=float32)
(1, 480, 16)
如果设置return_sequences=False,它不会返回时间步长维度:
import numpy as np
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import *
model = Sequential()
model.add(LSTM(32, input_shape=(480, 16), return_sequences = False))
model.add(Dense(16))
model.compile(loss='mse', optimizer='adam')
batch = np.zeros((90, 480, 16))
input_to_predict = batch[[0]]
model.predict(input_to_predict).shape
(1, 16)
添加回答
举报