In diesem Artikel erfahren Sie, wie Sie die Ausgabe jeder Ebene in einem Keras-Modell extrahieren, analog zu der von TensorFlow bereitgestellten Funktion.
Problem: Nach dem Training eines Faltungs-Neuronalen Netzwerks (CNN) für die binäre Klassifizierung ist es wünschenswert Erhalten Sie die Ausgabe jeder Ebene.
Antwort: Keras bietet eine einfache Methode, um dies zu erreichen:
Anpassen des Codes im bereitgestellten Beispiel:
from keras import backend as K # Define input and layer outputs input = model.input outputs = [layer.output for layer in model.layers] # Create a function to evaluate the output fn = K.function([input, K.learning_phase()], outputs) # Testing test_input = np.random.random(input_shape)[np.newaxis,...] layer_outputs = fn([test_input, 1.]) # Print the layer outputs print(layer_outputs)
Hinweis: Das K.learning_phase()-Argument ist entscheidend für Ebenen wie Dropout oder BatchNormalization, die ihre ändern Verhalten während Training und Prüfung. Setzen Sie es während der Dropout-Simulation auf 1 und andernfalls auf 0.
Optimierung: Aus Effizienzgründen wird empfohlen, eine einzige Funktion zur Auswertung aller Layer-Ausgaben zu verwenden:
fn = K.function([input, K.learning_phase()], outputs) # Testing test_input = np.random.random(input_shape)[np.newaxis,...] layer_outputs = fn([test_input, 1.]) # Print the layer outputs print(layer_outputs)
Das obige ist der detaillierte Inhalt vonWie greife ich auf Ebenenausgaben in einem Keras-Modell zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!