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.
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
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]
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
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
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)
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