Maison >développement back-end >Tutoriel Python >Comment extraire les sorties de chaque couche dans un modèle Keras ?
Keras : Comment récupérer la sortie de chaque couche
Introduction
Dans Keras, créer les modèles de réseaux neuronaux sont simples. Cependant, extraire la sortie de chaque couche peut être un peu plus difficile. Cet article vise à fournir une solution complète à ce problème, en vous guidant tout au long du processus d'obtention efficace des sorties de couche.
Méthode
Pour récupérer la sortie d'une couche spécifique , accédez-y simplement via l'attribut model.layers[index].output, où index représente la position souhaitée de la couche dans le modèle. Par exemple, pour obtenir la sortie de la première couche :
first_layer_output = model.layers[0].output
Pour obtenir les sorties de toutes les couches simultanément, utilisez le code suivant :
from keras import backend as K input_tensor = model.input # Input placeholder layer_outputs = [layer.output for layer in model.layers] # List of layer outputs evaluation_functions = [K.function([input_tensor, K.learning_phase()], [out]) for out in layer_outputs] # Functions to evaluate layer outputs # Testing test_input = np.random.random(model.input_shape)[np.newaxis,...] # Sample input layer_outputs = [func([test_input, 1.]) for func in evaluation_functions] # Evaluate layer outputs for test input
Optimisation
Pour une efficacité améliorée, envisagez d'utiliser une seule fonction pour évaluer toutes les couches sorties :
from keras import backend as K input_tensor = model.input # Input placeholder layer_outputs = [layer.output for layer in model.layers] # List of layer outputs evaluation_function = K.function([input_tensor, K.learning_phase()], layer_outputs) # Function to evaluate all layer outputs # Testing test_input = np.random.random(model.input_shape)[np.newaxis,...] # Sample input layer_outputs = evaluation_function([test_input, 1.]) # Evaluate all layer outputs for test input
Remarque : Assurez-vous du réglage correct du paramètre K.learning_phase(). Une valeur de 1 simule le mode entraînement (par exemple, pour des couches comme Dropout), tandis que 0 représente le mode test.
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!