Bekerja dari embedding layer di Tensorflow

Aug 24 2020

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

SauravMaheshkar Sep 20 2020 at 12:34

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_indexfungsi Tokenizer()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 ☺️

RyanRudes Aug 25 2020 at 13:38

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.