调用HuggingFace预训练RoBERTa关系抽取模型出现AttributeError报错求助
问题原因
报错的核心原因是:tokenizer默认返回的input_ids、attention_mask都是Python列表类型,而基于PyTorch实现的Hugging Face模型要求输入为PyTorch张量格式,列表没有size()方法,因此触发了属性报错。
修复方案
只需要在调用tokenizer时指定return_tensors="pt"参数,让tokenizer直接返回PyTorch张量即可,修改后的代码如下:
from transformers import AutoTokenizer, AutoModel tokenizer = AutoTokenizer.from_pretrained("mmoradi/Robust-Biomed-RoBERTa-RelationClassification") model = AutoModel.from_pretrained("mmoradi/Robust-Biomed-RoBERTa-RelationClassification") # 新增return_tensors="pt"参数,返回PyTorch张量格式的输入 inputs = tokenizer("The colorectal cancer was caused by mutations in angina", return_tensors="pt") # 如果你使用GPU运行,可添加下面这行把输入移到显存 # inputs = inputs.to("cuda") outputs = model(**inputs)
额外提示
如果你要使用该模型完成关系分类预测任务,建议将AutoModel替换为AutoModelForSequenceClassification加载模型,可直接得到分类预测的logits输出,而非仅主干的隐藏层结果。
内容的提问来源于stack exchange,提问作者Tomaž Bratanič
相关产品推荐
相关产品推荐

