Hier ist das Modell.Wie überprüft man Eingabe-Array-Formen in Keras?
model = Sequential()
model.add(Reshape((3,150,150), input_shape=(150,150,3)))
model.add(ZeroPadding2D((1,1)))
print(model.output_shape)
model.add(Conv2D(64,(3,3), activation='relu'))
print model.output_shape
(None, 5, 152, 150)
(None, 3, 150, 64)
Und wenn ich in Daten versuchen und Futtermittel, bekomme ich diese
ValueError: Error when checking target: expected conv2d_35 to have 4 dimensions, but got array with shape (32, 1)
Ausgangsform nicht zu sein scheint mir zu geben, was die Schicht zu sehen ist. Die Schicht sieht (32,1), während die Ausgangsform die richtige 4-dimensional druckt (keine (etwa 32 mit der Losgröße), 3,150,64)
Was mache ich falsch? Warum ist diese Form (32,1)?
Dies zeigt die Form des Layers, aber es zeigt nicht die Form der Daten selbst. Ich gebe Bilder weiter. Wie können sie sein (32,1)? Aus diesem Grund möchte ich das Daten-Array untersuchen, wenn es übergeben wird. 32 ist die Batch-Größe, aber warum ist es nur 1? Oh, vielleicht sind das die Ausgänge - y statt X .. – BigBoy1337
Ja, es ist die Ausgabe, die von Keras "Ziel" genannt wird. Sie müssen Ihr Modell mit dieser Form enden lassen. Sie können dies zum Beispiel tun, indem Sie am Ende eine 'Flatten()' und eine "Dichte (1)" Ebene hinzufügen. (Achten Sie auf die Aktivierungsfunktionen, sie müssen auch mit Ihrem Ziel übereinstimmen). –
ah ok. Gibt es eine Möglichkeit, die Form der Zieldaten bei der Einspeisung zu überprüfen? Damit ich bestätigen kann, dass es der output_shape des Modells entspricht? – BigBoy1337