假设我们有一个包含整数的Numpy数组。
arr = [1, 2, 3]
并且我们有一个Keras模型。
model.add(LSTM(128, input_shape=(arr)))
如何正确指定输入形状呢?
回答:
LSTM层的输入数据需要是三维的,形状为(num_samples, timesteps, num_features)
。
你指定给LSTM层的input_shape
的形状是(timesteps, num_features)
。input_shape
不关心样本的数量,只关心每个样本的形状。
如果我们假设timesteps=1
,你需要做类似这样的事情。
arr = np.array([1, 2, 3])arr.shape # (3,)arr = arr.reshape(arr.shape[0], 1, 1)arr.shape # (3, 1, 1)model.add(LSTM(128, input_shape=(arr.shape[1], arr.shape[2])))
使用timesteps=1
来使用LSTM可能不是很合理,但希望你能明白这个概念。