2017-08-07 5 views
1

Es gibt andere Post mit ähnlichen Fragen, aber keine der Antworten helfen mir. Ich bin neu in dieser CNN-Welt.keras reshape Eingabe Bild mit CNN

Ich folgte this Tutorial zum Training eines CNN mit Keras mit Theano als BackEnd mit dem MNIST-Datensatz. Jetzt möchte ich dem CNN mein eigenes JPG-Bild übergeben, aber ich weiß nicht, wie ich es umgestalten soll. Kannst du mir bitte helfen? Ich bin super neu.

Bisher habe ich versucht, diese

image = np.expand_dims(image, axis=0) image = preprocess_input(image) 

neu zu gestalten, aber die folgende Fehlermeldung erhalten, wenn die Vorhersage:

ValueError: Error when checking : expected conv2d_1_input to have shape (None, 1, 28, 28) but got array with shape (1, 3, 28, 28) 

Wie Sie sehen können, meine CNN verwendet width = 28, Höhe = 28 und Tiefe = 1.

+0

Hallo, haben Sie es geschafft, eine Antwort darauf zu finden? Ich habe auch meine eigene Reihe von Bildern, die in Keras 28, 28, 1 modelliert werden sollen. Wie bekomme ich alle Bilder von verschiedenen Größen in 28,28,1 passen? Ich erhalte den folgenden Fehler beim Eingeben von unbearbeitetem Bild: ValueError: Array der Größe 21600 kann nicht in Form umgeformt werden (28,28,1) – emeralddove

Antwort

0

Verwenden Sie Numpy zum Umformen. Da haben Sie bereits ein 2D-Faltungsmodell:

image = np.reshape(image, (28, 1, 28, 1)) 
0

Die Fehlermeldung zeigt das Netzwerk erwartet, dass die Bildform ist 1 * 28 * 28, aber Ihre Eingabe ist in 3 * 28 * 28. Ich denke, das Bild, das Sie eingeben, ist ein Farbbild, 3 Kanäle (RGB), während das Netzwerk ein graues Bild, einen Kanal erwartet.

Wenn Sie opencv aufrufen, um das Bild zu lesen, benutzen Sie bitte den folgenden Code. img = cv2.imread(imgfile, cv2.IMREAD_GRAYSCALE)

Verwandte Themen