"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment extraire les valeurs d'activation pour une couche spécifique à partir d'un modèle Keras?

Comment extraire les valeurs d'activation pour une couche spécifique à partir d'un modèle Keras?

Publié le 2025-04-13
Parcourir:974

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

Comment obtenir la sortie de chaque couche dans Keras

lorsque vous travaillez avec des réseaux de neurones profonds (DNNS), il est souvent utile d'inspecter les activations de couches individuelles. Cela peut vous aider à comprendre le comportement du modèle et à identifier les problèmes potentiels. Keras, une bibliothèque DNN populaire pour Python, fournit un moyen simple d'y parvenir.

en utilisant l'interface des couches de modèle

Les modèles Keras sont construits comme une séquence de couches, effectuant chacune une opération spécifique sur l'entrée. Pour récupérer la sortie d'une couche particulière, vous pouvez utiliser la syntaxe suivante:

model.layers[index].output

où l'index est l'index de la couche dont vous souhaitez extraire la sortie. Par exemple, pour obtenir la sortie de la deuxième couche convolutionnelle dans l'extrait de code fourni:

conv_output = model.layers[2].output

Obtenir la sortie de toutes les couches

pour extraire la sortie de toutes les couches dans le modèle, vous pouvez utiliser une liste complexe:

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

Création de fonctions d'évaluation

Pour évaluer réellement les sorties des couches, Keras fournit un ensemble de fonctions appelé K.Function. Ces fonctions prennent en entrée une liste de tenseurs et renvoient une liste de sorties.

Pour créer une fonction d'évaluation pour chaque sortie de couche, vous pouvez effectuer les éléments suivants:

from keras import backend as K

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

où inp est le tenseur d'entrée, k.learning_phase () est un drapeau pour indiquer si le modèle est en mode de formation ou d'inférence, et est la sortie de la couche. Sorties

Maintenant, vous pouvez évaluer les sorties de couche en passant les données d'entrée à la fonction d'évaluation correspondante:

test = np.random.random (input_shape) [np.newaxis, ...] couche_outs = [func ([test, 1.]) pour la func dans les fonds] imprimer couche_outs

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

Optimisation du processus

couches:

de Keras Import Backend comme k functor = k.function ([inp, k.learning_phase ()], sorties)

from keras import backend as K

functor = K.function([inp, K.learning_phase()], outputs)
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3