Bekerja dari embedding layer di Tensorflow
Adakah yang bisa menjelaskan kepada saya input dan output bersama dengan kerja lapisan yang disebutkan di bawah ini
model.add(Embedding(total_words, 64, input_length=max_sequence_len-1))
total_words = 263
max_sequence_len = 11
Apakah 64, jumlah dimensi?
Dan mengapa output dari lapisan ini (Tidak ada, 10, 64)
Bukankah seharusnya vektor 64 dimensi untuk setiap kata, yaitu (None, 263, 64)
Jawaban
Anda dapat menemukan semua informasi tentang Embedding Layer of Tensorflow Di Sini .
Dua parameter pertama adalah input_dimensiondan output_dimension.
- Dimensi masukan pada dasarnya mewakili ukuran kosakata model Anda. Anda dapat menemukannya dengan menggunakan
word_indexfungsiTokenizer()fungsinya. - Dimensi keluaran akan menjadi Dimensi masukan berikutnya
Dense Layer
Output dari lapisan Embedding adalah dalam bentuk (batch_size, input_length, output_dim). Tetapi karena Anda menentukan parameter input_length, input lapisan Anda akan berbentuk (batch, input_length). Itulah mengapa keluarannya adalah dalam bentuk (None, 10, 64).
Semoga itu menghilangkan keraguan Anda ☺️
Pada Embeddinglapisan, argumen pertama mewakili dimensi masukan (yang biasanya memiliki dimensi yang cukup besar). Argumen kedua mewakili dimensi keluaran, alias dimensi vektor tereduksi. Argumen ketiga adalah untuk panjang urutan. Intinya, lapisan Embedding hanya mempelajari bentuk tabel pencarian (input dim, output dim). Bobot lapisan ini mencerminkan bentuk itu. Namun, keluaran dari lapisan tersebut, tentu saja, akan berbentuk (output dim, seq length); satu vektor embedding dengan pengurangan dimensi untuk setiap elemen dalam urutan masukan. Bentuk yang Anda harapkan sebenarnya adalah bentuk bobot lapisan embedding.