So extrahieren Sie Ebenenausgaben in Keras
In Deep-Learning-Modellen ist es oft nützlich, zur Analyse oder Visualisierung auf die Ausgaben einzelner Ebenen zuzugreifen . In Keras kann dies mithilfe des Ebenenattributs des Modells erreicht werden.
Zugriff auf Ebenenausgaben
Um den Ausgabetensor einer bestimmten Ebene zu erhalten, verwenden Sie:
layer_output = model.layers[layer_index].output
Um beispielsweise die Ausgabe der zweiten Ebene im folgenden Modell zu erhalten:
model = Sequential() model.add(Convolution2D(...)) model.add(Activation('relu'))
Sie würden Verwenden Sie:
layer_output = model.layers[1].output
Alle Ebenenausgaben extrahieren
Um die Ausgaben aller Ebenen zu extrahieren:
layer_outputs = [layer.output for layer in model.layers]
Ebenenausgaben auswerten
Um die Layer-Ausgaben auf einer bestimmten Ebene auszuwerten Eingabe:
import keras.backend as K input_placeholder = model.input function = K.function([input_placeholder, K.learning_phase()], layer_outputs) test_input = np.random.random(input_shape) layer_outs = function([test_input, 1.])
Beachten Sie, dass K.learning_phase() als Eingabe für Ebenen wie Dropout oder BatchNormalization verwendet werden sollte, die während Training und Tests unterschiedliche Verhaltensweisen zeigen.
Optimierte Implementierung
Aus Effizienzgründen wird empfohlen, eine einzige Funktion zum Extrahieren aller Ebenen zu verwenden Ausgänge:
functor = K.function([input_placeholder, K.learning_phase()], layer_outputs)
Das obige ist der detaillierte Inhalt vonSo greifen Sie auf Layer-Ausgaben in Keras zu: Eine Anleitung zum Extrahieren und Auswerten einzelner Layer-Daten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!