提问人:ShoutOutAndCalculate 提问时间:11/17/2023 更新时间:11/17/2023 访问量:11
为什么在嵌入层('Embedding(V+1,D)(i)')中V+1,其中V是词汇量?
Why V+1 in Embedding layer(`Embedding(V+1,D)(i)`) where V the vocabulary size?
问:
假设
from tensorflow.keras.preprocessing.text import Tokenizer
tokenizer = Tokenizer()
...
V = len(tokenizer.word_index)
词汇量在哪里。V
有人告诉我,嵌入层
x = Embedding(V+1,D)(i)
其中,输出向量的维度。但是我不确定为什么嵌入层的大小必须是 而不是 ,特别是因为索引的起点是 而不是 ,即D
(V+1,D)
(V,D)
tokenizer.word_index
1
0
tokenizer.word_index
{'UNK': 1,
'the': 2,
',': 3,
'.': 4,
'of': 5,
'and': 6,
...}
所以(字典)的最大索引(如果转换为列表)实际上是。tokenizer.word_index
V-1
为什么在嵌入layer()中词汇量大?V+1
Embedding(V+1,D)(i)
V
答:
1赞
JaimeBee
12/12/2023
#1
主要原因是词汇表大小必须比 len(word_index) 高一个单位,才能索引到最大的标记 ID。 在以下链接中阅读更多详细信息(至少还有一个原因): https://datascience.stackexchange.com/questions/93651/reason-for-adding-1-to-word-index-for-sequence-modeling
上一个:人脸识别和MTCNN
评论