J'essaie d'utiliser l'exemple décrit dans la documentation Keras nommée "LSTM empilé pour la classification de séquence" (voir le code ci-dessous) et input_shape
je ne peux pas comprendre le paramètre dans le contexte de mes données.
J'ai en entrée une matrice de séquences de 25 caractères possibles encodés en nombres entiers pour une séquence matelassée de longueur maximale 31. Par conséquent, ma x_train
a la (1085420, 31)
signification de la forme (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))
Dans ce code x_train
a la forme (1000, 8, 16)
, comme pour un tableau de 1000 tableaux de 8 tableaux de 16 éléments. Là, je suis complètement perdu sur ce qui est quoi et comment mes données peuvent atteindre cette forme.
En regardant le document Keras et divers didacticiels et questions / réponses, il semble que je manque quelque chose d'évident. Quelqu'un peut-il me donner une idée de ce qu'il faut rechercher?
Merci de votre aide !