Fonctionnement de la couche d'intégration dans Tensorflow
Quelqu'un peut-il s'il vous plaît m'expliquer les entrées et les sorties ainsi que le fonctionnement de la couche mentionnée ci-dessous
model.add(Embedding(total_words, 64, input_length=max_sequence_len-1))
total_words = 263
max_sequence_len = 11
Est-ce que 64 est le nombre de dimensions?
Et pourquoi la sortie de cette couche (None, 10, 64)
Ne devrait-il pas être un vecteur de 64 dimensions pour chaque mot, c'est-à-dire (Aucun, 263, 64)
Réponses
Vous pouvez trouver toutes les informations sur la couche d'intégration de Tensorflow ici .
Les deux premiers paramètres sont input_dimensionet output_dimension.
- Les dimensions d'entrée représentent essentiellement la taille du vocabulaire de votre modèle. Vous pouvez le découvrir en utilisant la
word_indexfonction de laTokenizer()fonction. - Les dimensions de sortie vont être les dimensions de l'entrée du prochain
Dense Layer
La sortie de la couche Embedding est de la forme (batch_size, input_length, output_dim). Mais puisque vous avez spécifié le paramètre input_length, votre entrée de couches sera de la forme (batch, input_length). C'est pourquoi la sortie est de la forme (None, 10, 64).
J'espère que cela dissipe votre doute ☺️
Dans la Embeddingcouche, le premier argument représente les dimensions d'entrée (qui sont généralement d'une dimensionnalité considérable). Le deuxième argument représente les dimensions de sortie, c'est-à-dire la dimensionnalité du vecteur réduit. Le troisième argument concerne la longueur de la séquence. En substance, un calque d'incorporation apprend simplement une table de recherche de forme (input dim, output dim). Les poids de cette couche reflètent cette forme. La sortie de la couche, cependant, sera bien entendu de forme (output dim, seq length); un vecteur d'incorporation à dimensionnalité réduite pour chaque élément de la séquence d'entrée. La forme que vous attendiez est en fait la forme des poids d'un calque d'intégration.