Ich versuche Keras für die binäre Klassifizierung eines Bildes zu verwenden.
Mein CNN-Modell ist gut in den Trainingsdaten geschult (mit einer Trainingsgenauigkeit von ~ 90% und einer Validierungsgenauigkeit von ~ 93%). Aber während des Trainings, wenn ich die Stapelgröße = 15000 einstelle, bekomme ich die Abbildung I Ausgabe und wenn ich die Stapelgröße = 50000 einstelle, bekomme ich Abbildung II als Ausgabe. Kann mir bitte jemand sagen was falsch ist? Die Vorhersage sollte nicht von der Batch-Größe abhängen, oder?
Code, den ich für die Vorhersage verwende:
y=model.predict_classes(patches, batch_size=50000,verbose=1)
y=y.reshape((256,256))
Mein Modell: -
%Vor% Keras ist standardisierter Eingang automatisch in der Funktion predict
. Die für die Standardisierung erforderlichen Statistiken werden für einen Stapel berechnet. Aus diesem Grund können Ihre Ausgaben von einer Stapelgröße abhängen. Sie können dies lösen durch:
UPDATE: Hier ist ein Code für die zweite Lösung:
%Vor% Wenn Sie nun dieses neue theano_model
verwenden möchten, sollten Sie den Hauptdatensatz selbst standardisieren (z. B. durch Subtrahieren des Mittelwerts und Division durch Standardabweichung für jedes Pixel in Ihrem Bild) und theano_model
anwenden, um die Ergebnisse für einen ganzen Datensatz zu erhalten (Sie könnten dies in einer Schleife tun, die über Beispiele iteriert oder numpy.apply_along_axis
oder numpy.apply_over_axes
-Funktionen verwendet).
UPDATE 2: , damit diese Lösung funktioniert.
%Vor%zu:
%Vor%Tags und Links python neural-network deep-learning machine-learning keras