Tom*_*nič 2 python nlp huggingface-transformers
我正在使用 Scibert 预训练模型来获取各种文本的嵌入。代码如下:
from transformers import *
tokenizer = AutoTokenizer.from_pretrained('allenai/scibert_scivocab_uncased', model_max_length=512, truncation=True)
model = AutoModel.from_pretrained('allenai/scibert_scivocab_uncased')
Run Code Online (Sandbox Code Playgroud)
我已将最大长度和截断参数添加到分词器,但不幸的是,它们不会截断结果。如果我通过分词器运行更长的文本:
inputs = tokenizer("""long text""")
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
令牌索引序列长度长于此模型指定的最大序列长度 (605 > 512)。通过模型运行此序列将导致索引错误
现在很明显,由于张量序列太长,我无法在模型中运行它。截断输入以适应最大序列长度 512 的最简单方法是什么?
truncation
不是类构造函数(类引用)的参数,而是__call__
方法的参数。因此,您应该使用:
tokenizer = AutoTokenizer.from_pretrained('allenai/scibert_scivocab_uncased', model_max_length=512)
len(tokenizer(text, truncation=True).input_ids)
Run Code Online (Sandbox Code Playgroud)
输出:
512
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1351 次 |
最近记录: |