在tf.keras.layers.Embedding中,为什么重要的是知道字典的大小?

Dan*_* T. 1 tensorflow word-embedding

与标题相同,在tf.keras.layers.Embedding中,为什么重要的是要知道字典的大小作为输入维?

seb*_*ckm 7

因为在内部,嵌入层不过是size的矩阵vocab_size x embedding_size。这是一个简单的查找表:n该矩阵的行存储word的向量n

因此,如果您有例如1000个不同的词,则嵌入层需要知道此数字才能存储1000个向量(作为矩阵)。

不要将图层的内部存储与其输入或输出形状混淆。输入形状是(batch_size, sequence_length)每个条目都是范围内的整数[0, vocab_size[。对于这些整数中的每个整数,图层将返回embedding_size内部矩阵的对应行(大小为向量),因此输出形状变为(batch_size, sequence_length, embedding_size)

  • 这篇文章 https://stats.stackexchange.com/questions/270546/how-does-keras-embedding-layer-work 解释了 `Embedding()` 层的所有机制以及一些有用的链接。 (2认同)