AttributeError:“NoneType”对象没有属性“encode_plus”
Posted
技术标签:
【中文标题】AttributeError:“NoneType”对象没有属性“encode_plus”【英文标题】:AttributeError: 'NoneType' object has no attribute 'encode_plus' 【发布时间】:2021-12-26 18:12:35 【问题描述】:我正在尝试将 XLNet 模型用于我的情绪分类项目,但收到此错误。
from transformers import XLNetTokenizer, XLNetModel
PRE_TRAINED_MODEL_NAME = 'xlnet-base-cased'
tokenizer = XLNetTokenizer.from_pretrained(PRE_TRAINED_MODEL_NAME)
input_txt = "India is my country. All Indians are my brothers and sisters"
encodings = tokenizer.encode_plus(input_txt, add_special_tokens=True, max_length=16, return_tensors='pt', return_token_type_ids=False, return_attention_mask=True, pad_to_max_length=False)
AttributeError Traceback (most recent call last)
<ipython-input-41-4b204650a45a> in <module>()
1 input_txt = "India is my country. All Indians are my brothers and sisters"
----> 2 encodings = tokenizer.encode_plus(input_txt, add_special_tokens=True, max_length=16, return_tensors='pt', return_token_type_ids=False, return_attention_mask=True, pad_to_max_length=False)
AttributeError: 'NoneType' object has no attribute 'encode_plus'
SEARCH STACK OVERFLOW
为什么我的分词器被识别为 NoneType?
【问题讨论】:
这个错误很清楚地告诉你tokenizer
是None
。这意味着XLNetTokenizer.from_pretrained
正在返回None
。所以,检查一下,然后试着找出它为什么返回None
。
【参考方案1】:
我的 XLNet 遇到了类似的问题 - 事实证明,您导入/安装 XLNet 和 SentencePiece 的顺序会有所不同。
在这种情况下,您应该在转换器包之前导入 SentencePiece。这将使python更好地理解tokenizer和SentencePiece之间的关系。
所以你的代码应该是这样的:
!pip install sentencepiece transformers
import sentencepiece
from transformers import XLNetTokenizer, XLNetModel
PRE_TRAINED_MODEL_NAME = 'xlnet-base-cased'
tokenizer = XLNetTokenizer.from_pretrained(PRE_TRAINED_MODEL_NAME)
input_txt = "India is my country. All Indians are my brothers and sisters"
encodings = tokenizer.encode_plus(input_txt, add_special_tokens=True, max_length=16, return_tensors='pt', return_token_type_ids=False, return_attention_mask=True, pad_to_max_length=False)
【讨论】:
以上是关于AttributeError:“NoneType”对象没有属性“encode_plus”的主要内容,如果未能解决你的问题,请参考以下文章
AttributeError:'NoneType'对象没有属性'upper'[关闭]
%Matplotlib - AttributeError: 'NoneType' 对象没有属性 'lower'
BeautifulSoup:AttributeError:“NoneType”对象没有属性“文本”
Elastic Beanstalk 部署错误:AttributeError :: 'NoneType' 对象没有属性 'split'