Heim >Backend-Entwicklung >Python-Tutorial >Wie greife ich auf Ebenenausgaben in einem Keras-Modell zu?

Wie greife ich auf Ebenenausgaben in einem Keras-Modell zu?

DDD
DDDOriginal
2024-11-30 02:09:121067Durchsuche

How to Access Layer Outputs in a Keras Model?

Zugriff auf Ebenenausgaben in Keras

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn