我正在尝试使用名为“用于序列分类的堆叠 LSTM”的 Keras 文档中描述的示例(请参见下面的代码),并且无法在我的数据上下文中找出input_shape
参数。
我输入了一个由 25 个可能的字符组成的序列矩阵,这些字符以整数编码为最大长度为 31 的填充序列。因此, myx_train
具有形状(1085420, 31)
含义(n_observations, sequence_length)
。
from keras.models import Sequential
from keras.layers import LSTM, Dense
import numpy as np
data_dim = 16
timesteps = 8
num_classes = 10
# expected input data shape: (batch_size, timesteps, data_dim)
model = Sequential()
model.add(LSTM(32, return_sequences=True,
input_shape=(timesteps, data_dim))) # returns a sequence of vectors of dimension 32
model.add(LSTM(32, return_sequences=True)) # returns a sequence of vectors of dimension 32
model.add(LSTM(32)) # return a single vector of dimension 32
model.add(Dense(10, activation='softmax'))
model.compile(loss='categorical_crossentropy',
optimizer='rmsprop',
metrics=['accuracy'])
# Generate dummy training data
x_train = np.random.random((1000, timesteps, data_dim))
y_train = np.random.random((1000, num_classes))
# Generate dummy validation data
x_val = np.random.random((100, timesteps, data_dim))
y_val = np.random.random((100, num_classes))
model.fit(x_train, y_train,
batch_size=64, epochs=5,
validation_data=(x_val, y_val))
在此代码x_train
中,形状(1000, 8, 16)
为 1000 个数组,其中 8 个数组包含 16 个元素。在那里,我完全迷失了我的数据是什么以及如何达到这种形状。
查看 Keras 文档以及各种教程和问答,我似乎遗漏了一些明显的东西。有人可以告诉我要寻找什么吗?
谢谢你的帮助 !