我正在尝试向预训练的 HuggingFace Transformers 模型的词汇表中添加一些新单词。我执行了以下操作来更改分词器的词汇并增加模型的嵌入大小:
tokenizer.add_tokens(['word1', 'word2', 'word3', 'word4'])
model.resize_token_embeddings(len(tokenizer))
print(len(tokenizer)) # outputs len_vocabulary + 4
Run Code Online (Sandbox Code Playgroud)
但是在我的语料库上训练模型并保存后,我发现保存的分词器词汇量没有改变。再次检查后发现上述代码并没有改变词汇量大小(tokenizer.vocab_size仍然相同),只有len(tokenizer)发生了变化。
所以现在我的问题是;tokenizer.vocab_size 和 len(tokenizer) 有什么区别?
nlp tokenize huggingface-transformers huggingface-tokenizers
每个人!我正在阅读有关 Bert 的文章,并想利用其词嵌入进行文本分类。我遇到了这行代码:
pooled_output, sequence_output = self.bert_layer([input_word_ids, input_mask, segment_ids])
Run Code Online (Sandbox Code Playgroud)
进而:
clf_output = sequence_output[:, 0, :]
out = Dense(1, activation='sigmoid')(clf_output)
Run Code Online (Sandbox Code Playgroud)
但我无法理解合并输出的用途。序列输出不是包含了包括['CLS']的词嵌入在内的所有信息吗?如果是这样,为什么我们要汇总输出?
提前致谢!
neural-network python-3.x text-classification tensorflow bert-language-model