我試圖使用the example described in the Keras documentation命名爲「Stacked LSTM for sequence classification」(請參見下面的代碼),但無法計算出我的數據上下文中的參數input_shape
。瞭解帶Keras的LSTM中的input_shape參數
我輸入了25個可能字符序列的矩陣,整數編碼爲最大長度爲31的填充序列。結果,我的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)
,對於1000個陣列16個元件的8個陣列的陣列。在那裏,我完全喪失了什麼以及我的數據如何達到這種形狀。
看着Keras doc和各種教程和Q & A,似乎我失去了一些明顯的東西。有人能給我提示尋找什麼嗎?
感謝您的幫助!