Lavorazione strato annegante in Tensorflow
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
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 dellaTokenizer()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 ☺️
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.