假设我们有一个包含整数的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可能不是很合理,但希望你能明白这个概念。