Erreur lors de la vérification des données d'entrée du modèle: attendu lstm_1_input à 3 dimensions, mais il a obtenu de la matrice de la forme (339732, 29)
Mon entrée est tout simplement un fichier csv avec 339732 lignes et de deux colonnes :
- la première étant de 29 valeurs de fonction, c'est à dire X
- le second, une binaire de l'étiquette de valeur, c'est à dire Y
Je suis en train de former mes données sur un empilées LSTM modèle:
data_dim = 29
timesteps = 8
num_classes = 2
model = Sequential()
model.add(LSTM(30, return_sequences=True,
input_shape=(timesteps, data_dim))) # returns a sequence of vectors of dimension 30
model.add(LSTM(30, return_sequences=True)) # returns a sequence of vectors of dimension 30
model.add(LSTM(30)) # return a single vector of dimension 30
model.add(Dense(1, activation='softmax'))
model.compile(loss='binary_crossentropy',
optimizer='rmsprop',
metrics=['accuracy'])
model.summary()
model.fit(X_train, y_train, batch_size = 400, epochs = 20, verbose = 1)
Ce envoyait le message d'erreur:
Traceback (most recent call last):
Fichier "first_approach.py", ligne 80, dans
de modèle.ajustement(X_train, y_train, batch_size = 400, des époques = 20, verbose = 1)ValueError: Erreur lors de la vérification des données d'entrée du modèle: attendu lstm_1_input à
ont 3 dimensions, mais il a obtenu de la matrice de la forme (339732, 29)
J'ai essayé de remodeler mon entrée à l'aide de X_train.reshape((1,339732, 29))
mais il n'a pas de travail montre l'erreur:
ValueError: Erreur lors de la vérification des données d'entrée du modèle: attendu lstm_1_input à
de forme (None, 8, 29), mais il a obtenu de la matrice de la forme (1, 339732, 29)
Comment puis-je donner à mon entrée à la LSTM ?
OriginalL'auteur Saurav-- | 2017-06-22
Vous devez vous connecter pour publier un commentaire.
Réglage
timesteps = 1
(depuis, j'en veux un timestep pour chaque instance) et le remodelage de l'X_train et X_test:Cela a fonctionné!
OriginalL'auteur Saurav--
Pour
timesteps != 1
, vous pouvez utiliser la sous fonction (adapté de ici)Exemples
create_dataset()
enmodel.fit()
AttributeError: 'tuple' object has no attribute 'shape'
create_dataset
retourne un tuple dex, y
. Essayezx_train, y_train = create_dataset(dataset)
et puismodel.fit(x_train, y_train)
J'ai une entrée de la formation qui est un np.tableau 100 lignes et 50 colonnes. Certaines de ces colonnes contiennent les valeurs flottantes, certains contiennent chaud "encodages", construit avec
keras.utils.to_categorical()
qui sont en fait que des tableaux. Je suis confus de ce que je pourrais utiliserx_train
ety_train
. Ma formation étiquettes sont dans un tableau séparé, le modèle d'entrée contient uniquement les données d'apprentissage (première entrée dans le modèle.ajustement())Dans ce cas, il suffit de les ignorer
y_train
à partir de cette fonction et d'utiliser celui que vous avez déjà dans votre tableau séparé. Aussi, le modèle.ajustement serait de prendre dans lex_train
à partir de cette fonction et de votre cibletoujours pas de travail, j'ai ouvert un bounty sur une question qui imite mon problème: stackoverflow.com/questions/51469446/... Fondamentalement, la manutention, dans l'ordre de la couche, un ensemble de formation qui contient à la fois des tableaux et des valeurs numériques
OriginalL'auteur shadi
Remodeler entrée pour LSTM:
OriginalL'auteur Ashok Kumar Jayaraman