Maison > Article > développement back-end > Comment puis-je accéder et évaluer les sorties de couche dans un modèle Keras ?
Obtention des sorties de couche dans Keras
Lors de la construction de modèles de réseaux neuronaux à l'aide de frameworks comme Keras, il peut être avantageux d'accéder aux sorties de couches individuelles à des fins d’analyse ou de débogage. Dans cet article, nous allons montrer comment récupérer les sorties de chaque couche dans un modèle Keras.
Considérez l'exemple de code suivant, où un modèle de classification binaire avec une architecture de réseau neuronal convolutif (CNN) est créé :
from keras.models import Sequential from keras.layers import Convolution2D, Activation, MaxPooling2D, Flatten, Dense, Dropout model = Sequential() # ... (Model architecture as provided in the question)
Accès aux sorties des calques
Pour obtenir la sortie d'un calque spécifique dans le modèle, vous pouvez utilisez l'attribut model.layers[index].output. Ici, l'index représente la position de la couche dans l'architecture du modèle.
Par exemple, pour accéder à la sortie de la première couche convolutive :
output = model.layers[0].output
Obtenir les sorties de toutes les couches
Pour récupérer les sorties de toutes les couches du modèle, vous pouvez utiliser la liste compréhension :
outputs = [layer.output for layer in model.layers]
Évaluation des sorties de couche
Pour évaluer les sorties obtenues à l'étape précédente, vous pouvez exploiter la méthode K.function fournie par le backend Keras :
from keras import backend as K inputs = model.input functor = K.function([inputs, K.learning_phase()], outputs)
Ici, les entrées représentent la couche d'entrée du modèle, et K.learning_phase() est requis pour les couches qui présentent différentes comportement pendant la formation et l'évaluation (par exemple, abandon).
Enfin, pour évaluer les sorties de couche pour une entrée donnée :
test_input = np.random.random(input_shape)[np.newaxis,...] layer_outputs = functor([test_input, 1.])
Optimisation pour l'évaluation
Pour optimiser le processus d'évaluation, plutôt que de créer plusieurs fonctions pour chaque sortie de couche, vous pouvez créer une seule fonction qui renvoie toutes les sorties dans un list :
functor = K.function([inputs, K.learning_phase()], outputs)
Notes supplémentaires
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!