2016-11-17 3 views
2

J'utilise Keras pour faire les travaux de modélisation et je me demande s'il est possible d'enlever certaines couches par index ou par nom? Actuellement, je ne sais que le model.pop() pourrait faire ce travail, mais il supprime simplement les couches les plus récemment ajoutées. En outre, layers est le type de tensorvariable et je n'ai aucune idée comment enlever certains élément qui peut être fait dans numpy array ou list. BTW J'utilise le backend Theano.Keras enlever des couches après model.fit()

+0

Pouvez-vous élaborer sur la deuxième partie de la question concernant 'layers' et' tensorvariable'? Merci d'avance. – petezurich

Répondre

1

Il est correct que model.pop() ne supprime que la dernière couche ajoutée et qu'il n'existe aucune autre méthode documentée pour supprimer les couches intermédiaires.

Vous pouvez toujours obtenir la sortie d'une couche intermédiaire comme ceci:

base_model = VGG19(weights='imagenet') 
model = Model(inputs=base_model.input, outputs=base_model.get_layer('block4_pool').output) 

Exemple tiré ici: https://keras.io/applications/

que d'ajouter vos nouvelles couches au-dessus de cela.