J'ai eu l'erreur suivante lorsque j'ai essayé de former un modèle MLP en keras (j'utilise la version keras 1.2.2
)
Erreur lors de la vérification de l'entrée du modèle: la liste des tableaux Numpy que vous avez Les données transmises à votre modèle ne correspondent pas à la taille attendue. Attendu pour voir 1 tableaux mais a obtenu à la place la liste suivante de 12859 tableaux:
Ceci est le résumé du modèle
____________________________________________________________________________________________________
Layer (type) Output Shape Param # Connected to
====================================================================================================
dense_1 (Dense) (None, 20) 4020 dense_input_1[0][0]
____________________________________________________________________________________________________
dense_2 (Dense) (None, 2) 42 dense_1[0][0]
====================================================================================================
Total params: 4,062
Trainable params: 4,062
Non-trainable params: 0
____________________________________________________________________________________________________
None
Ceci est la première ligne du modèle
model.add(Dense(20, input_shape=(200,), init='lecun_uniform', activation='tanh'))
Pour s'entraîner:
model.fit(X,Y,nb_Epoch=100,verbose=1)
où X est une liste d'éléments et chaque élément est une liste de 200 valeurs.
Modifier :
J'ai aussi essayé
model.add(Dense(20, input_shape=(12859,200), init='lecun_uniform', activation='tanh'))
mais j'obtiens la même erreur
Votre erreur provient du fait que votre X
pour une raison quelconque n’a pas été transformé en un numpy.array
. Dans ce cas, votre X
est traitée comme une liste de lignes et c’est une raison derrière votre message d’erreur (qu’elle attend une entrée au lieu d’une liste contenant plusieurs éléments de lignes). Transformation:
X = numpy.array(X)
Y = numpy.array(Y)
Je vérifierais un processus de chargement de données parce que quelque chose pourrait mal tourner là-bas.
METTRE À JOUR:
Comme cela a été mentionné dans un commentaire - input_shape
doit être remplacé par input_dim
.
MISE À JOUR 2:
Afin de garder input_shape
, on devrait le changer en input_shape=(200,)
.
J'ai corrigé le mien en ajoutant
np.array
train_X, train_Y, valid_X et valid_Y. Par exemple,
model.fit(np.array(train_X),np.array(train_Y),
batch_size=32,nb_Epoch=20,
validation_data=(np.array(valid_X),np.array(valid_Y)),
callbacks=[early_stop])
J'ai eu l'aide de ici . Cette approche risque d’être lente, car toutes les fonctions de données devront être converties en baies numpy et le travail de votre système pourrait s’avérer lourd.