3
votes

Keras Tensor obtenir le nom

J'ai une liste de tenseurs de keras, et pour chacun d'eux, je donne un nom avec le paramètre name .
Par exemple, je veux nommer BatchNormalization layer comme "a":

print(layer.name)
>>> a_2/cond/Merge:0

Mais quand j'essaye de récupérer le nom que j'ai donné à le niveau, il ressemble à ceci:

layer = BatchNormalization(axis=3, name="a")(input)

Comment puis-je récupérer le nom exact que j'ai donné à mon objet layer ( "a " pour cet exemple)?


0 commentaires

3 Réponses :


-1
votes

Vous pouvez faire

model.get_layer('a').name

Cela affichera une liste de tous les noms de couches. Ou il peut être récupéré à partir du modèle.

[layer.name for layer in model.layers]


2 commentaires

la question porte sur le changement de nom lors de la réexécution du code. Comme indiqué dans la question, evaleria sait comment obtenir le nom d'une couche.


@Alexis, pourriez-vous clarifier votre commentaire et voter contre? Ça n'a rien à voir avec re run, n'est-ce pas



3
votes

Séparons cette ligne en deux lignes:

layer.name 

Maintenant, si vous avez essayé de sortir

layer = BatchNormalization(axis=3, name="a")
node = layer(input)

ce sera "a".

Ce que vous essayiez de faire est de sortir le nom du tenseur de sortie de cette couche batchnorm qui est fondamentalement un tenseur tensorflow qui résulte de cette opération de fusion.

Donc, pour ce faire, vous Vous devez le faire sur le calque comme indiqué ci-dessus ou faire un traitement sur le nom de l'opération car il contiendra toujours le nom du calque.


0 commentaires

1
votes

Je sais que la question a été répondue, mais la mise à jour de la question a effacé un problème que l'auteur avait signalé, alors j'écrirai quand même ma réponse pour les personnes qui viendront ensuite. (qui sera dense ici):

>>> l = Dense(20,activation='softmax',name='a')(l)
>>> l.name
a_2/Softmax:0

si j'exécute ce code dans la même console, j'obtiens les mêmes résultats. Cependant lorsque j'exécute le code de la question:

>>> l = Dense(20,activation='softmax',name='a')(inputs)
>>> l.name
a_1/Softmax:0

et lorsque j'exécute le code:

>>> l = Dense(20,activation='softmax',name='a')(inputs)
>>> l.name
a/Softmax:0


0 commentaires