Cet article vous guidera sur la façon d'extraire la sortie de chaque couche dans un modèle Keras, analogue à la capacité fournie par TensorFlow.
Problème : Après avoir entraîné un réseau de neurones convolutifs (CNN) pour la classification binaire, il est souhaitable d'obtenir la sortie de chaque couche.
Réponse : Keras propose une méthode simple pour y parvenir :
Personnalisation du code dans l'exemple fourni :
from keras import backend as K # Define input and layer outputs input = model.input outputs = [layer.output for layer in model.layers] # Create a function to evaluate the output fn = K.function([input, K.learning_phase()], outputs) # Testing test_input = np.random.random(input_shape)[np.newaxis,...] layer_outputs = fn([test_input, 1.]) # Print the layer outputs print(layer_outputs)
Remarque : L'argument K.learning_phase() est crucial pour les couches comme Dropout ou BatchNormalization qui modifier leur comportement pendant la formation et les tests. Réglez-le sur 1 lors de la simulation de Dropout et sur 0 sinon.
Optimisation : Pour plus d'efficacité, il est recommandé d'utiliser une seule fonction pour évaluer toutes les sorties de couche :
fn = K.function([input, K.learning_phase()], outputs) # Testing test_input = np.random.random(input_shape)[np.newaxis,...] layer_outputs = fn([test_input, 1.]) # Print the layer outputs print(layer_outputs)
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!