web-dev-qa-db-fra.com

Valeur de la valeur d'erreur: L'entrée est incompatible avec la couche conv2d_1: ndim attendu = 4, trouvé ndim = 5.

J'ai vérifié toutes les solutions, mais je suis toujours confronté à la même erreur. La forme de mes images d’entraînement est (26721, 32, 32, 1), ce qui, à mon avis, correspond à 4 dimensions, mais je ne sais pas pourquoi une erreur montre qu’il s’agit de 5 dimensions.

 model = Sequential()

 model.add(Convolution2D(16, 5, 5, border_mode='same',
                            input_shape= input_shape ))

Donc, voici comment je définis model.fit_generator

model.fit_generator(train_dataset, train_labels, nb_Epoch=epochs, verbose=1,validation_data=(valid_dataset, valid_labels), nb_val_samples=valid_dataset.shape[0],callbacks=model_callbacks)

Quelqu'un peut-il m'aider s'il vous plaît avec cela?

2
Lucky

Le problème est input_shape

Il ne devrait contenir que 3 dimensions. Et en interne, keras ajoutera la dimension batch, ce qui en fera 4. 

Puisque vous avez probablement utilisé input_shape avec 4 dimensions (lot inclus), keras ajoute la 5ème. 

Vous devriez utiliser input_shape=(32,32,1).

7
Daniel Möller

Le problème est avec input_shape. Essayez d’ajouter une dimension/un canal supplémentaire pour que keras sache que vous travaillez sur une image en niveaux de gris, c’est-à-dire -> 1

input_shape= (56,56,1). Si vous utilisez un modèle d'apprentissage en profondeur normal, cela ne posera pas de problème, mais c'est le cas pour Convnet.

0
SANDEEP KUMAR H