Lavorazione strato annegante in Tensorflow

Aug 24 2020

Qualcuno può spiegarmi gli input e gli output insieme al funzionamento del livello menzionato di seguito

model.add(Embedding(total_words, 64, input_length=max_sequence_len-1))

parole_totali = 263

max_sequence_len = 11

È 64, il numero di dimensioni?

E perché l'output di questo livello (Nessuno, 10, 64)

Non dovrebbe essere un vettore di 64 dimensioni per ogni parola, cioè (Nessuno, 263, 64)

Risposte

SauravMaheshkar Sep 20 2020 at 12:34

Puoi trovare tutte le informazioni sul livello di incorporamento di Tensorflow qui .

I primi due parametri sono input_dimensione output_dimension.

  • Le dimensioni di input rappresentano fondamentalmente le dimensioni del vocabolario del tuo modello. Puoi scoprirlo usando la word_indexfunzione della Tokenizer()funzione.
  • Le dimensioni di output saranno le Dimensioni dell'input del successivo Dense Layer

L'output del livello di incorporamento è del modulo (batch_size, input_length, output_dim). Ma poiché hai specificato il parametro input_length, l'input dei tuoi livelli sarà nel formato (batch, input_length). Ecco perché l'output è nel formato (Nessuno, 10, 64).

Spero che questo chiarisca il tuo dubbio ☺️

RyanRudes Aug 25 2020 at 13:38

Nel Embeddinglivello il primo argomento rappresenta le dimensioni di input (che è tipicamente di notevole dimensionalità). Il secondo argomento rappresenta le dimensioni di output, ovvero la dimensionalità del vettore ridotto. Il terzo argomento è per la lunghezza della sequenza. In sostanza, un livello di incorporamento sta semplicemente imparando una tabella di ricerca della forma (input dim, output dim). I pesi di questo strato riflettono quella forma. L'output dello strato, tuttavia, sarà ovviamente di forma (output dim, seq length); un vettore di incorporamento a dimensione ridotta per ogni elemento nella sequenza di input. La forma che ti aspettavi è in realtà la forma dei pesi di uno strato di incorporamento.