„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie extrahiere ich Aktivierungswerte für eine bestimmte Schicht aus einem Keras -Modell?

Wie extrahiere ich Aktivierungswerte für eine bestimmte Schicht aus einem Keras -Modell?

Gepostet am 2025-04-13
Durchsuche:754

How to Extract Activations from Specific Layers in a Keras Model?

wie man ausgabe jeder Ebene in keras

Wenn ich mit tiefen neuronalen Netzwerken (DNNs) arbeite, ist es oft nützlich, die Aktivierungen einzelner Schichten zu inspizieren. Dies kann Ihnen helfen, das Verhalten des Modells zu verstehen und potenzielle Probleme zu identifizieren. Keras, eine beliebte DNN -Bibliothek für Python, bietet eine einfache Möglichkeit, dies zu erreichen.

unter Verwendung der Model Layers Interface

Keras -Modelle werden als Abfolge von Ebenen konstruiert, wobei jeweils eine bestimmte Operation auf der Eingabe ausgeführt wird. Um die Ausgabe einer bestimmten Ebene abzurufen, können Sie die folgende Syntax verwenden:

model.layers[index].output

wobei der Index der Index der Ebene ist, aus der Sie die Ausgabe extrahieren möchten. Zum Beispiel, um die Ausgabe der zweiten Faltungsschicht in den bereitgestellten Code -Snippet zu erhalten:

conv_output = model.layers[2].output

Ausgabe von allen Layern

, um die Ausgabe aus allen Schichten in dem Modell zu extrahieren. model.layers]

outputs = [layer.output for layer in model.layers]

Um die Ausgänge der Ebenen tatsächlich zu bewerten, liefert Keras eine Reihe von Funktionen, die als K.Function bezeichnet werden. Diese Funktionen geben als Eingabe eine Liste von Tensoren an und geben eine Liste von Ausgängen zurück.

, um eine Bewertungsfunktion für jede Ebeneausgabe zu erstellen, können Sie Folgendes ausführen:

von Keras importieren Backend als k Functors = [k.funktion ([INP, k.learning_phase ()], [out]) für out in Ausgängen]

from keras import backend as K

functors = [K.function([inp, K.learning_phase()], [out]) for out in outputs]

Jetzt können Sie die Ebenenausgänge bewerten, indem Sie die Eingabedaten an die entsprechende Evaluierungsfunktion weitergeben:

test = np.random.random (input_shape) [np.newaxis, ...] layer_outs = [func ([test, 1.]) für func in functors] Drucken Sie Layer_outs

Denken Sie daran, K.Learning_Phase () auf 1 zu setzen, wenn eines der Ebenen in Ihrem Modell die Normalisierung des Trainings oder die Stapel -Normalisierung enthalten.

test = np.random.random(input_shape)[np.newaxis,...]
layer_outs = [func([test, 1.]) for func in functors]
print layer_outs

Dies reduziert den Datenübertragungs- und Berechnungsaufwand, der den individuellen Funktionsbewertungen zugeordnet ist.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3