Ich habe eine sehr einfache Abfrage. Ich habe 4 fast identisch gemacht (Differenz ist Eingabeformen) CNN und habe sie beim Verbinden mit einem Feed-Forward-Netzwerk von vollständig verbundenen Schichten zusammengeführt.
Code für die fast identische CNN (s):
model3 = Sequential()
model3.add(Convolution2D(32, (3, 3), activation="relu", padding="same",
input_shape=(batch_size[3], seq_len, channels)))
model3.add(MaxPooling2D(pool_size=(2, 2)))
model3.add(Dropout(0.1))
model3.add(Convolution2D(64, (3, 3), activation="relu", padding="same"))
model3.add(MaxPooling2D(pool_size=(2, 2)))
model3.add(Flatten())
Aber auf Tensorboard sehe ich, dass alle Dropout-Ebenen miteinander verbunden sind, und Dropout1 hat eine andere Farbe als Dropout2,3,4 usw., die alle die gleiche Farbe haben.
Antworten:
0 für die Antwort № 1Ich weiß, dass das eine alte Frage ist, aber ich hatte das gleiche Problem und gerade jetzt wurde mir klar, was vor sich geht
Dropout wird nur angewendet, wenn wir das Modell trainieren. Dies sollte deaktiviert werden, wenn wir es evaluieren / vorhersagen. Zu diesem Zweck erstellt keras ein learning_phase
Platzhalter, festgelegt auf 1.0
wenn wir das Modell trainieren. Dieser Platzhalter wird innerhalb des ersten erstellt Dropout
Ebene, die Sie erstellen und für alle gemeinsam verwenden. Das ist also was du da siehst!