Arbeiten der Einbettungsschicht in Tensorflow
Kann mir bitte jemand die Ein- und Ausgänge zusammen mit der Arbeitsweise der unten genannten Schicht erklären
model.add(Embedding(total_words, 64, input_length=max_sequence_len-1))
total_words = 263
max_sequence_len = 11
Ist 64 die Anzahl der Dimensionen?
Und warum ist die Ausgabe dieser Ebene (Keine, 10, 64)
Sollte es nicht ein Vektor mit 64 Dimensionen für jedes Wort sein, dh (Keine, 263, 64)
Antworten
Alle Informationen zur Einbettungsschicht von Tensorflow finden Sie hier .
Die ersten beiden Parameter sind input_dimensionund output_dimension.
- Die Eingabedimensionen entsprechen im Wesentlichen der Vokabulargröße Ihres Modells. Sie können dies mithilfe der
word_indexFunktion derTokenizer()Funktion herausfinden . - Die Ausgabedimensionen sind Dimensionen des Eingangs des nächsten
Dense Layer
Die Ausgabe der Einbettungsebene hat die Form (batch_size, input_length, output_dim). Da Sie jedoch den Parameter input_length angegeben haben, hat die Eingabe Ihrer Ebenen die Form (batch, input_length). Aus diesem Grund hat die Ausgabe die Form (Keine, 10, 64).
Hoffe das klärt deine Zweifel ☺️
In der EmbeddingSchicht repräsentiert das erste Argument die Eingabedimensionen (die typischerweise von beträchtlicher Dimensionalität sind). Das zweite Argument repräsentiert die Ausgabedimensionen, auch bekannt als die Dimensionalität des reduzierten Vektors. Das dritte Argument betrifft die Sequenzlänge. Im Wesentlichen lernt eine Einbettungsebene einfach eine Nachschlagetabelle der Form (input dim, output dim). Die Gewichte dieser Schicht spiegeln diese Form wider. Die Ausgabe der Schicht wird jedoch natürlich von Form sein (output dim, seq length); Ein eindimensionalitätsreduzierter Einbettungsvektor für jedes Element in der Eingabesequenz. Die Form, die Sie erwartet haben, ist tatsächlich die Form der Gewichte einer Einbettungsschicht.