我正在学习Tensorflow,并在tensorflow中遇到了Embedding层,该层用于学习自己的单词嵌入。该层采用以下参数:
keras.layers.Embedding(input_dim,
output_dim,
embeddings_initializer='uniform',
embeddings_regularizer=None,
activity_regularizer=None,
embeddings_constraint=None,
mask_zero=False,
input_length=None)
“ input dim”应该与词汇表相同,即唯一的单词。如果我想将词汇量限制为仅最频繁的前25000个单词-我该怎么做?
例如,我可以简单地将'input_dim'更改为25000,还是必须遍历语料库,并用令牌替换前25000个单词之外的任何单词?
实际上,如果您使用tensorflow.keras
,则必须确保您的语料中的令牌不超过vocabulary_size或嵌入层的input_dim
,否则会出现错误。
如果使用keras
,则只需更改嵌入层中的input_dim
,而无需更改语料库或标记中的任何内容。 keras
将用zero
向量替换词汇表中的标记。
如果您需要有关行为的更多详细信息,请查看此答案:How does keras Embedding layer works if input value greater than input_dim?