我正在尝试使用Keras文档中描述的名为“用于序列分类的堆叠式LSTM” 的示例(请参见下面的代码),并且无法input_shape
在我的数据上下文中找出参数。
我输入了一个由25个可能的字符组成的序列矩阵,以整数编码为最大长度为31的填充序列。因此,my x_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)
为16个元素的8个数组的1000个数组。在那里,我完全迷失了什么是什么以及如何使数据达到这种形状。
查看Keras文档以及各种教程和问答,看来我缺少明显的东西。有人可以提示我要寻找什么吗?
谢谢你的帮助 !