2017-08-21 4 views
1

Je suis en train de comprendre et comment interprate la représentation JSON d'un modèle keras. Chaque couche a ses entrées enregistrées dans le champ inbound_nodes. Ce que je ne comprends pas, ce sont les tableaux.Keras JSON exportation: inbound_nodes

Par exemple, pour 2 entrées pour une couche de fusion, il ressemble à ça:

inbound_nodes: [ 
    [ 
    ['average_pooling2d_1', 0, 0, {}], 
    ['conv2d_3', 0, 0, {}], 
    ] 
] 

Ce qui est avec tous les tableaux? Pourquoi ne pas enregistrer comme ça:

inbound_nodes: ['average_pooling2d_1', 'conv2d_3'] 

Je suppose que la structure est parce que doit être sauvegardée parfois des informations supplémentaires en quelque sorte. Quel genre d'information est-ce? Par exemple. Quelle est la taille de inbound_nodes> 1?

Répondre

0

Voici donc ce que J'ai découvert:

  • Le tableau externe est utilisé si le calque est réutilisé.
  • La matrice interne est utilisée si la couche a de multiples entrées.
  • La position [0] est évidemment le nom de la couche.
  • sur la position [1] est 1 si la « couche » est le nom est un modèle par exemple ["Modèle de base", 1, ...] signifie que la couche peut être trouvée dans la configuration du modèle de base. Il est 0 si le nom correspond à un calque.
  • sur la position [2] est l'indice de la couche de sortie en position de cas [1] avait un 1 et représente donc un modèle

toujours pas sûr de la dict

1

Les paramètres derrière « pooling2d » peuvent être conçus pour la taille future de features.The de inbound_nodes> 1 lorsque les couches ont d'autres données stream.For plus de détails, consultez la définition du nœud et la couche keras source code